個々のリクエスト中にのみ利用可能にする必要があるデータの場合、どこに保存する必要がありますか? req オブジェクトと res オブジェクトに新しいプロパティを作成しているので、そのデータを関数から関数に渡す必要はありません。
req.myNewValue = 'just for this request'
プロセスオブジェクトはオプションですか? それとも、すべてのリクエストでグローバルに共有されていますか?
個々のリクエスト中にのみ利用可能にする必要があるデータの場合、どこに保存する必要がありますか? req オブジェクトと res オブジェクトに新しいプロパティを作成しているので、そのデータを関数から関数に渡す必要はありません。
req.myNewValue = 'just for this request'
プロセスオブジェクトはオプションですか? それとも、すべてのリクエストでグローバルに共有されていますか?
Express 4 でのベスト プラクティスは、リクエスト レベルの変数をres.localsに格納することです。
リクエストをスコープとするレスポンス ローカル変数を含むオブジェクト。したがって、そのリクエスト / レスポンス サイクル中にレンダリングされたビュー (存在する場合) でのみ使用できます。それ以外の場合、このプロパティは app.locals と同じです。
このプロパティは、リクエスト パス名、認証済みユーザー、ユーザー設定などのリクエスト レベルの情報を公開する場合に役立ちます。
app.use(function(req, res, next){
res.locals.user = req.user;
res.locals.authenticated = ! req.user.anonymous;
next();
});
オブジェクトはすべてのprocess
リクエストで共有されるため、リクエストごとに使用しないでください。
次のように渡された変数について話している場合:
http.createServer(function (req, res) {
req.myNewValue = 'just for this request';
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
その後、あなたがしていることは完全に問題ありません。req
要求データを保存するので、必要に応じて変更できます。Express などのフレームワークを使用している場合も問題ありません (req
オブジェクトの組み込みプロパティを上書きする可能性があることに注意してください)。
「プロセスオブジェクト」によってグローバル変数を参照している場合はprocess
、絶対にそうではありません。ここのデータはグローバルであり、まったく変更しないでください。