在节点中聚合数据时的输入字段函数和mongoDB

Input field function when aggregating data in node and mongoDB

我正在尝试为应用程序开发数据聚合功能。用户应该能够输入一个名称,它将在数据库集合中搜索该名称和 return 集合。 我正在尝试使用 node.js 来实现它,但我对如何为名称传递参数感到困惑。

控制器:

exports.DAFacility_author_search = (req, res) => {
  DAFacility.aggregate([
    [
      {
        '$match': {
          'author': author
        }
      }
    ]
  ]).then((DAFacility) => {
    res.send(DAFacility);
  })
  .catch((e) => {
    res.send(e);
  });
};

路线:

router.get('/DAFacilityAuthor', DAFacilityController.DAFacility_author_search)

对于 'author': author 我正在尝试使用 author 作为变量名,但我不完全知道如何构建控制器和路由器以接收参数以便我可以检索邮递员的值。 任何帮助都会很棒 谢谢

我想你在 postman 中的请求应该是这样的:

{
    "author": "foo",
    ...
}

当 API 收到您的请求时,主体在控制器中的 req 对象中可用,因此,如果您想在聚合中使用 author 字段,您只需访问:req.body.author.

您的控制器可能具有下一个结构:

export const DAFacilityController = {
    DAFacility_author_search: (req, res) => {
        DAFacility.aggregate([
            {'$match': {'author': req.body.author}}
        ])
    .then((DAFacility) => {
        res.send(DAFacility);
    }).catch((e) => {
        res.send(e);
    });
    },

    DAFacility_another_method: (req, res) => {...},
}

路由器正常:

router.get('/DAFacilityAuthor', DAFacilityController.DAFacility_author_search);
router.get('/DAFacilityAuthor/<something>', DAFacilityController.DAFacility_another_method);

希望我帮到了你