2016-10-29 6 views
0

Account.findOneAndUpdateのエラーが発生しました.POSTMANを使用する関数ではありません。下のモデルに何が問題なのか?node.jsのfindOneAndUpdate mongooseが失敗しました

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'で使うことができるように、2つのステートメントに分割しました。 – JohnnyHK

+0

私はどこか1本の線を見ました。同様に 'var account = module.exports = mongoose.model( 'account'、AccountSchema);' –

関連する問題