Пользователь не конструктор - PullRequest
0 голосов
/ 10 июня 2018

я получаю ошибку: User is not a constructor при попытке добавить новый документ в мою базу данных.До этого я использовал mongoose.model без метода Schema, и он работал отлично, но мне пришлось добавить валидатор, и ему нужен этот синтаксис, и с тех пор я не могу заставить его работать

КОД:

var UserSchema = mongoose.Schema({
    username: { type: String, required: true, unique: true },
    email: { type: String, index: true, unique: true, required: true },
    password: { type: String, required: true }
});

UserSchema.plugin(uniqueValidator);

let User = mongoose.model("user", UserSchema);
module.exports = User;


router.post('/', (req, res) => {


    var user = new User({
        username: req.body.username,
        email: req.body.email,
        password: req.body.password          
    });

    // save the user
    user.save(function (err) {
        if (err) {
            console.log('Error in Saving user: ' + err);
            throw err;
        }
        console.log('User Registration succesful');
        // return done(null, userData);
        res.status(200).send({user: user})
    });

});

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

хорошо, я исправил свою проблему вместо

module.exports = User;

Я должен был сделать:

module.exports = {User};

0 голосов
/ 10 июня 2018

mongoose.Schema является конструктором, поэтому вам нужно вызвать его с помощью «new»:

var UserSchema = new mongoose.Schema({
    username: { type: String, required: true, unique: true },
    email: { type: String, index: true, unique: true, required: true },
    password: { type: String, required: true }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...