Я добавил метод в свою схему мангуста. Когда я создаю экземпляр, я могу вызвать этот объект, но когда я запрашиваю этот объект и пытаюсь вызвать тот же метод, он возвращает исключение.
Файл User.js:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
name: String
surname: String
});
userSchema.methods.print = function() {
console.info(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();
});
Я не вижу, где я ошибаюсь,
А предложения?
Спасибо.





Это потому, что вы не создали объект 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, указав фактический путь к файлу.