2016-10-29 2 views
0

У меня ошибка Account.findOneAndUpdate не является функцией, использующей POSTMAN. Вы знаете, что случилось с моей моделью ниже?findOneAndUpdate mongoose в node.js не удалось

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var passportLocalMongoose = require('passport-local-mongoose'); 

var Account = new Schema({ 
    username: String, 
    password: String, 
    createAt: {type: Date, default: Date.now}, 
    status: {type: String, default: 'Active'} 
}); 

Account.plugin(passportLocalMongoose); 

module.exports = mongoose.model('accounts', Account); 

module.exports.updateStatus = function(username,callback){ 
    var update = {status:'Completed'}; 
    Account.findOneAndUpdate({username:username},update).exec(callback); 
} 

Я хочу, чтобы обновить статус в завершена

Когда я console.log (имя пользователя) Я могу видеть, что я могу получить значение.

ответ

2

findOneAndUpdate - метод на модели, а не схема.

var AccountSchema = new Schema({ 
    username: String, 
    password: String, 
    createAt: {type: Date, default: Date.now}, 
    status: {type: String, default: 'Active'} 
}); 

AccountSchema.plugin(passportLocalMongoose); 

var Account = mongoose.model('accounts', AccountSchema); 
module.exports = Account; 

module.exports.updateStatus = function(username,callback){ 
    var update = {status:'Completed'}; 
    Account.findOneAndUpdate({username:username},update).exec(callback); 
} 

Но вы, вероятно, хотите, чтобы очистить ваш экспорт, как вы используете модель в качестве exports объекта, а затем добавить updateStatus к этому.

+0

Вы разделили эту строку 'module.exports = mongoose.model ('accounts', Account);' будет ли это влиять на другую часть моего приложения? –

+1

Это функционально все еще там; Я просто разделил его на два оператора, чтобы модель 'Account' могла использоваться' updateStatus'. – JohnnyHK

+0

Я видел где-то одну линию. Подобно 'var Account = module.exports = mongoose.model ('account', AccountSchema);' –

Смежные вопросы