count+1 からの出力を console.log にすると、正しい数値が得られます。note.note_id の値を出力すると undefined になります。どうしてこれなの?
関数内で定義済みの値に値を設定しようとしました。
note.note_id = db.notes.count(function(err, count) {
return count + 1;
});
count+1 からの出力を console.log にすると、正しい数値が得られます。note.note_id の値を出力すると undefined になります。どうしてこれなの?
関数内で定義済みの値に値を設定しようとしました。
note.note_id = db.notes.count(function(err, count) {
return count + 1;
});
何かわからないと答えにくいdb.notes
のですが、データベースにアクセスしているようです。これは、おそらく非同期であることを意味します。つまり、count()
メソッドが値を返すことはありませんが、コールバック内で結果に対してやりたいことは何でもする必要があります。
db.notes.count(function(err, count) {
note.note_id = count + 1;
// do more stuff here
});
// do NOT do stuff here. it will run BEFORE the callback has been executed