【问题标题】:Passing two parameters to Express Mongoose api to return single result将两个参数传递给 Express Mongoose api 以返回单个结果
【发布时间】:2017-04-01 11:55:07
【问题描述】:

我是使用 Express 和 Mongoose 创建 API 的新手。

我已经能够设置我的基本端点,获取、发布、放置等。

但现在我想设置一个,在其中传递两个参数来搜索集合并返回单个结果。

我认为我没有正确传递参数。

在我的角度,我有以下服务调用,我知道这是正确的:

.factory('LoginFactory', function($resource){
  return $resource('/api/user?email=:eml&password=:pwd', {}, {
    query:{ method:'GET', isArray:true, params:{ eml:'@eml', pwd:'@pwd'}}
  });
});

但我认为我在我的 express/mongoose API 中做得不对。这是我的终点:

router.route('/:email:password')
.get(function(req, res){
  User.findOne({email:req.param.email, password:req.param.password}, function(err, user){
    if(err)
      res.send(err);
    res.json(user);
  });
});

【问题讨论】:

    标签: angularjs mongodb express mongoose


    【解决方案1】:

    我使用req.params 而不是req.param

    每个参数前都有一个斜线

    app.get("/:email/:password", function(req, res){
      console.log(req.params.email)
      console.log(req.params.password)
    })
    

    req.params

    此属性是一个包含映射到命名的属性的对象 路线“参数”。例如,如果您有路由 /user/:name, 那么“name”属性作为 req.params.name 可用。这个对象 默认为 {}。

    您只有一个看起来像 :email:password 的参数。您必须添加一个斜杠来创建一个 URL 段,以便 express 可以将其识别为路由参数。

    【讨论】:

      猜你喜欢
      • 2014-04-23
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多