我已經繼承了一個快速應用程序。在應用程序中,我們傳遞給res.render一個龐大的局部變量列表。對於每個頁面,我們傳遞大約30個不變的變量。如果一個人改變了,就需要在十幾個地方改變它。這顯然是不好的。合併服務器端的兩個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({...})
,但確實給出了一個錯誤(TypeError: Object #<Object> has no method 'concat'
),extend
和push
也是如此。
是否沒有方法來擴展或合併兩個對象?我需要推出自己的?
此外,這是使數組全球最好的方法嗎?我寧願將它稱爲locals
,而不是local.locals
,因爲這只是麻煩。
'Object.assign' – mostruash
我得到了'TypeError:Object#
查看Object.assign文檔後,我改變了參數,現在我得到了TypeError:Object function Object(){[native code]}沒有方法'assign'。我會看看lodash。 –