如何格式化基于用户名返回用户的路由

时间:2015-10-21 20:06:41

标签: angularjs node.js express mongoose

这是我在Angular中的API调用:

$http({
                method: 'POST',
                url: "http://groep6api.herokuapp.com/user",
                headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                transformRequest: function(obj) {
                    var str = [];
                    for(var p in obj)
                        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                    return str.join("&");
                },
                data: {username: "testeken3"}
            }).success(function (result) {
                console.log(result);
            });

这是我在routes / index.js中的路线:

router.post('/user', function(req, res, next){
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

  User.find(function(user){
    if(user.username != req.body.username){next(err);}
    res.json(user);
  });
});

我认为我的API调用是正确的,但我的路线需要怎么样? 这只是没有回应。

1 个答案:

答案 0 :(得分:0)

假设您使用mongoose作为您的ODM,则表示您未向User.find()功能传递任何条件。另外,传递给find()的回调是第一次回调错误,因此第一个参数将被分配一个Error对象(如果有),如果不是,它将是未定义的,第二个参数将包含结果{ {1}}。

以下代码使用find()根据用户名找到给定用户,然后根据传递给回调的内容将相应地做出响应。此代码还假定find()对属性具有唯一约束。如果没有,此代码将返回符合username条件的所有结果。

find()