Когда я пытаюсь сохранить запись пользователя в БД в узле, сохраняется только идентификатор

У меня проблема с сохранением данных пользователя в MongoDB; функция сохранения сохраняет только идентификатор пользователя, а также, когда я регистрирую пользователя, прежде чем пытаться его сохранить, я тоже получаю только идентификатор. Когда я регистрирую 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' + doc)

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

person Dragana    schedule 24.04.2020    source источник
comment
можете ли вы показать свою пользовательскую схему   -  person Shubh    schedule 24.04.2020
comment
Конечно, вот оно: const userSchema = new Schema({ name: { type: String, required: [true, 'Это поле не может быть пустым'] }, email: { type: String, required: [true, 'Это поле не может быть пустым'] }, username: { type: String, required: [true, 'Это поле не может быть пустым'] }, password: { type: String, required: [true, 'Это поле не может быть пустым'] }, saltSecret: String });   -  person Dragana    schedule 24.04.2020
comment
Пожалуйста, смотрите ответ.   -  person Shubh    schedule 24.04.2020


Ответы (1)


Проблема, о которой вы упоминаете в вопросе, связана с импортом модели использования.

Можете ли вы добавить это в конец файла модели (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)

person Nayan    schedule 24.04.2020
comment
С этими 4 строками или без них, когда я регистрирую пользователя, все, что я получаю, это: { _id: 5ea32b754c939026ec997f64} - person Dragana; 24.04.2020
comment
Можете ли вы проверить с помощью любого инструмента, такого как MongoDB Compass, чтобы проверить фактический документ в БД? - person Nayan; 24.04.2020
comment
В базу данных сохраняется только id - person Dragana; 24.04.2020
comment
Можете ли вы добавить это в конец файла модели (user.model): => module.exports = User = mongoose.model(User, userSchema); и импортировать в контроллер как const User = require(../models/user.model); - person Nayan; 24.04.2020