私は高速アプリケーションを継承しました。このアプリケーションでは、res.renderに大量の局所変数リストを渡します。すべてのページについて、変化のない約30の変数を渡します。変更がある場合は、十数箇所で変更する必要があります。これは明らかに悪いことです。サーバ側で2つのjsonオブジェクトをマージする
私がしたいことは本当にローカルから離れて変わらない値のローカルを保存することです。だから私は自分のファイルにこれらの非変更値を配置し、各ルートの開始時にファイルをロードし、そのような:
'use strict';
var locals =
{
indexName: 'Home',
...lots more of these...
};
module.exports = { locals : locals };
// in each route files
var local = require('../locals.js');
そして、私はまた、追加する必要があるしかし、私はres.render('sensor', local.locals);
を経由して、それを使用することができますページ固有の値。だから私はlocal.locals + { ... };
を試してみましたが、エラーを出さないうちに元の値を表示していません。
私はlocal.locals.concat({...})
を試しましたが、これはextend
とpush
と同様にエラー(TypeError: Object #<Object> has no method 'concat'
)を返します。
2つのオブジェクトを拡張またはマージする方法はありませんか?私は自分自身をロールバックする必要がありますか?
また、これはアレイをグローバルにする最良の方法ですか?私はちょうど煩わしいのでlocals
と呼ぶのが好きで、local.locals
ではないと思う。
'Object.assign' – mostruash
' TypeError:Object#
'Object.assign'のドキュメントを見て、パラメータを変更しました。これで' TypeError:Object function Object({{ネイティブコード}}にメソッド 'assign'はありません。私はロダッシュを見ます。 –