当我尝试将用户记录保存到节点中的数据库时,只保存了 id

When I try to save user record to db in node, only id is saved

我在将用户数据保存到 MongoDB 时遇到问题;保存功能只保存用户的 ID,而且当我在尝试保存之前登录用户时,我也只得到 ID。 当我登录 req.body 时,我得到了所有数据。

我想问题出在实例化 userSchema 的某个地方。

const userSchema = require('../models/user.model');
var User = mongoose.model('user', userSchema);

这是我的代码:

module.exports.register = (req, res, next) => {
var user = new User(req.body);
user.name = req.body.name;
user.email = req.body.email;
user.username = req.body.username;
user.password = req.body.password;

user.save((err, doc) => {
    if (!err) {
        res.send(doc);
    }
    else {
        console.log(err);
        if (err.code == 11000) {
            res.status(422).send(['Duplicate email adrress found.']);
        }
        else
            return next(err);
    }
  });
}

这是我的 console.log(req.body)

    {
      name: 'name',
      email: 'mail@mail',
      username: 'username123',
      password: '12345'
    }

这是 console.log('document' + 文档)

document: { _id: 5ea3237a48b41b3cc08bfe1f, __v: 0 }

您在问题中提到的问题与使用模型导入有关

您能否在 (user.model) 模型文件的末尾添加此内容:module.exports = User = mongoose.model("User", userSchema); 并在控制器中导入为 const User = require("../models/user.model");

只是想引起注意控制台日志的两种不同行为,“,”和“+”。请检查一下。而且我认为您也不需要以下 4 行:

user.name = req.body.name;
user.email = req.body.email;
user.username = req.body.username;
user.password = req.body.password;

let user = {"_id":"a", "name":"ABCD"};
  
console.log("doc"+ user)

console.log("doc", user)