目前,我在 app.js 中设置了 Express 应用程序设置,如下所示:
app.set('siteCategoryNo', '900');
app.set('brandCompanyName', 'Website Name');
app.set('brandDomainName', 'website.com');
相反,我想将它们存储在一个单独的文件 app-config.js 中,如下所示:
/*
* app-config.js
*/
module.exports = function () {
var appSettings = {
settings: [{
key: 'siteCategoryNo',
val: '900'
}, {
key: 'brandCompanyName',
val: 'website name'
}, {
key: 'brandDomainName',
val: 'website.com'
}]
// all other settings omitted
}
return appSettings;
};
这就是 app.js 的样子:
// all other code omitted
var configSettings = require('./app-config.js')();
for (var i = 0; i <= configSettings.settings.length; i++) {
var applicationSettings = configSettings.settings.pop();
app.set(applicationSettings.key, applicationSettings.val);
}
我这样做是因为我正在与另一个开发人员构建一个几乎相同的网站,但我们有一些不同的设置和路线。我们希望这将使合并变得更容易。
仅当对象数组位于 app.js 文件中时,关联数组(如果您这么调用它)上的循环才有效。我想将其分离到 app-config.js 中,但一旦我这样做,我的任何变量都不会被设置。
这可能吗?
最佳答案
你可以这样做:
module.exports = function (app) {
var appSettings = {
settings: [{
key: 'siteCategoryNo',
val: '900'
}, {
key: 'brandCompanyName',
val: 'website name'
}, {
key: 'brandDomainName',
val: 'website.com'
}]
// all other settings omitted
}
appSettings.settings.forEach(function(setting){
app.set(setting.key, setting.val);
});
return app;
};
然后从app.js
:
var express = require('express');
var app = require('configFile')(express());
关于javascript - 快速应用程序设置存储在单独的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488739/