Mongoose (MongoDB)在保存后直接移除

Mongoose (MongoDB) removes directly after saving

本文关键字:保存 MongoDB Mongoose      更新时间:2023-09-26

我有一个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函数?!

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

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