Mongoose(MongoDB)在保存

时间:2016-07-04 09:46:39

标签: javascript node.js mongodb mongoose

我有一个mongoose脚本可以保存用户:

saveUser: function(username, password){
    return new Promise(function(resolve, reject){
        var newUser = new User({ username:username, password:password });
        newUser.save(function (err, msg) {
            if (err) {
                reject(err);
            } else {
                resolve('User saved.' + msg);
            }
        });
    });
}

此脚本似乎有效,它调用resolve()方法并返回已保存的用户。

然而,在那之后,我的数据库不显示记录。

我这样称呼函数:

router.post('/', function(req, res, next) {
  user.saveUser(req.body.username, req.body.password)
      .then(function(msg){
        res.json({status: msg});
      }) 
      .catch(function(msg){
        res.json({status: msg});
      })
});

我试图找到记录,结果就是这样:

{
    "status": [
        {
            "_id": "56cec8a39641c8c01bd9f5e4",
            "username": "test",
            "password": "test",
            "born": "2016-02-25T09:25:55.425Z",
            "died": "2016-02-25T09:25:55.656Z",
            "__v": 0
        }
    ]
}

这是与DB相关的唯一代码。 Mongoose为什么在创建对象后立即删除它?我从未实现过remove功能?!

1 个答案:

答案 0 :(得分:0)

我认为问题在于你正在使用var newUser = new User({ username:username, password:password });。您可以使用以下命令在mongoose中创建用户。

User.create({ username:username, password:password });