これがばかげているように聞こえる場合は申し訳ありませんが、私はまだサーバー側の Javascript を学んでいます。app.js ファイルにこのコードがあります。
var test;
UserModel.findOne({name: 'guest'}, function(err, user) {
test = user.name;
});
console.log(test);
UserModel.findOne
非同期であるため、これが機能しないことを理解しています。したがって、すべてがコールバック内で発生する必要があります。たとえば、終了console.log(test)
前に実行できます。UserModel.findOne
質問
var test
app.js ファイルで宣言した場合、 user.name
(経由でUserModel.findOne
) の値を取得する方法はありますか?
これを行う理由は、事前にデータベースからこれらすべての情報を取得することを望んでいるためです。そのため、ユーザー名が必要になるたびにデータベース クエリを作成する必要はありません。
この考えが適切でない場合、同様の代替手段はありますか?
編集・更新
これは、認証/ログインには使用されません。すべてのユーザーが変数test
とその内容にアクセスできるようにします。
test
基本的に、変数が永続的に設定されずuser.name
、代わりにコールバックの範囲内でのみステップが取得される理由を尋ねています。また、変数を永続的に設定することは可能ですか?