私はNode.jsアプリケーションを作成しています。関数の引数を変更する必要がある場所がいくつかあります。例えば、私は後でそれを見ることができます要求するためにユーザーを追加するため、このエクスプレスミドルウェア:事があるJavaScriptの関数引数を変更するのは悪い習慣ですか?
exports.fetchUserDetails = function (req, res, next) {
httprequest(opts, function (err, res, body) {
req.user = body.user;
next()
}
}
は、私は、静的コードアナライザ(ESLint)を使用し始め、それは常に、関数の引数(http://eslint.org/docs/rules/no-param-reassignを再割り当て文句を言っています)。私はこのルールが理由のためにそこにあると思う。
私は、関数のパラメータを変更すると、この例のように、悪いことができることを知っている:
function modifyParam(param) {
param.a = 2
}
var obj = { a: 1 };
console.log(obj); // outputs { a: 1 };
modifyParam(obj);
console.log(obj); // outputs { a: 2 };
しかし、私は本当に引数が再割り当てせずに私のミドルウェアをリファクタリングする他の方法が表示されません。
だから、私の質問は:
- 私は再割り当てのparamsを使用することができますか?
- これを避けるためにミドルウェアをどのようにリファクタリングすることができますか? (または私はそれのように残す必要があります)