angularjs - 如何使用用户名查询 Mongoose

标签 angularjs node.js mongoose

我的 Nodejs API 应用程序中有此路线:

router.post('/user', function(req, res, next){
  if(!req.body.username){
    return res.status(400).json({message: 'Geen username'});
  }

  var user = {};

  User.find({ 'username': req.body.username}, function(err, foundUser){
    if(err)
      return next(err);

    if (foundUser) // check the value returned for undefined
    {
      user = foundUser;
    }
  });

  res.json(user);
});

但是这只会返回 {} 并且我确信用户名在数据库中。

这就是我在 Angular 应用程序中调用路线的方式:

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

        });
    };

我对 Angular 和 Nodejs 相当陌生,我尝试过 User.find 和 User.findOne,但都不起作用。如何根据参数在 mongoose 中搜索对象?

最佳答案

您将在 mongoose 调用完成之前返回 json,因此 user 变量为空。试试这个:

router.post('/user', function(req, res, next){
    if(!req.body.username){
      return res.status(400).json({message: 'Geen username'});
    }

    var user = {};

    User.find({ 'username': req.body.username}, function(err, foundUser){
    if(err)
        return next(err);

    if (foundUser) // check the value returned for undefined
    {
      user = foundUser;
    }

    res.json(user);
  });

});

关于angularjs - 如何使用用户名查询 Mongoose ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33290330/

相关文章:

javascript - $locationPath 导致错误 : [$rootScope:inprog]

javascript - ng-focus 不适用于 <button> 标签

node.js - 调用 findOne 和填充时转换为 objectid 失败

javascript - 一个应用程序中不同html中的不同合并和缩小的js文件

javascript - Mongoose connectTimeoutMS 回调

node.js - 如何在 Mongoose 中更新引用数组

javascript - AngularJS - 使用 lodash 更好地过滤集合中的集合

javascript - 禁用使用 Angularjs 的其他多选选项字段中的选定选项

node.js - 是否有可用于管理用户帐户的meteor.js 库?

arrays - Node js,for循环奇怪的情况