0
私は、多くの場合、デザインの面で問題が発生しました。 res.json(pages, 200)
をfindOne
のコールバックに移動すると、このスクリプトは完全に機能します。回避ローカル変数は
JavaScriptに関しては間違ったパターン/コードデザインに従っていますか、またはpages
をグローバルにすることを除けば、res.json()
をコールバックから外しておくソリューションがありますか?
私は、多くの場合、デザインの面で問題が発生しました。 res.json(pages, 200)
をfindOne
のコールバックに移動すると、このスクリプトは完全に機能します。回避ローカル変数は
JavaScriptに関しては間違ったパターン/コードデザインに従っていますか、またはpages
をグローバルにすることを除けば、res.json()
をコールバックから外しておくソリューションがありますか?
問題は、一致が見つかった場合にBook.findOne
コールバックを実行して実行することです。その後、res.json
を呼び出し、pages
を引数として渡しています。この時点までにコールバックが実行されていないことを理解することは重要です。コールバック関数内でレスポンスを移動できますか?
Book.findOne({title: 'First Book'}, function (err, doc) {
res.json(doc.pages, 200)
})
はい、これは問題ありません。 コードは非同期的に実行され、厳密には1つの行から別の行に実行されるわけではないので、これはコールバックを介して作業するためにJavascriptのより一般的な使用法です。 –
@ daemonfire300コードは非同期では実行されません。コールバックは非同期に呼び出されます。 – fent