首页 > 解决方案 > 我想在 Angular 的 http get 请求中将 _id 作为参数传递

问题描述

  productSelect(_id){
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    return this.http.get('http://localhost:3000/api/productSelect', { headers: headers, search: _id }).pipe(map(res => res.json()));
  }

index.js(节点)

router.get('/productSelect', (req, res, next) =>{
    let _id = req.query.search;
    console.log(_id);
    productSchema.aggregate([   
        { $lookup:
            {
                from: 'supplierschemas',
                localField: 'supplierId',
                foreignField: '_id',
                as: 'supplier'
            }
        },
        { $lookup:
            {
                from: 'brandschemas',
                localField: 'brandId',
                foreignField: '_id',
                as: 'brand'
            }
        },
        { $lookup:
            {
                from: 'categoryschemas',
                localField: 'categoryId',
                foreignField: '_id',
                as: 'category'
            }
        }

    ], (err, productSchema) =>{
        if(err) res.json(err);
        else res.json(productSchema);
    });
});

此代码返回“未知”。如何解决这个问题?以及如何添加传递参数到聚合?我想根据用户的选择修改选择标签选项

标签: node.jsangulartypescript

解决方案


看起来你需要req.query.search而不是req.body.search. 从文档

请求查询

路由中的查询字符串参数。如果没有查询字符串,则为空对象,{}。此属性是包含每个属性的对象


推荐阅读