запрос мангуста не возвращает фактический объект - PullRequest
0 голосов
/ 10 сентября 2018

Я добавил метод в мою схему мангуста.Когда я создаю экземпляр, я могу вызвать этот объект, но когда я запрашиваю этот объект и пытаюсь вызвать тот же метод, он возвращает исключение.

Файл User.js:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
    name: String
    surname: String
});

userSchema.methods.print = function() {
    console.log(this.name, this.surname);
};

module.exports = mongoose.model('User', userSchema);

Следующий код работает должным образом:

const user = new User({});
user.print();

Но когда я запрашиваю mongodb и пытаюсь вызвать print для метода, он возвращает исключение:

User.findById(id, function(err,user){
    // print is not a function
    user.print();
}); 

Я не вижу, где я 'Я ошибаюсь,

И предложения?

Спасибо.

1 Ответ

0 голосов
/ 10 сентября 2018

Это потому, что вы не создали объект User.

Измените module.exports = mongoose.model('User', userSchema); на let User = module.exports = mongoose.model('User', userSchema); в файле User.js и создайте объект User перед вызовом метода печати, например:

let User = require('<path>/User.js');, где вам нужно обновить path, указав фактический путь к файлу.

...