0

count+1 からの出力を console.log にすると、正しい数値が得られます。note.note_id の値を出力すると undefined になります。どうしてこれなの?

関数内で定義済みの値に値を設定しようとしました。

note.note_id = db.notes.count(function(err, count) {
  return count + 1;
});
4

1 に答える 1

4

何かわからないと答えにくい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
于 2013-01-13T13:27:06.353 に答える