javascript - 快速应用程序设置存储在单独的文件中

标签 javascript node.js express

目前,我在 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/

相关文章:

javascript - jquery:厌倦了 css().css().css()

javascript - 将图像添加到 mousedown 上的 div 并从数组 jQuery 中删除 mouseup 上的图像

javascript - 在 express 和 react 中用 index.html 响应

node.js - 在 Express/Node 服务器中通过 HTTP POST 接受 wav 音频文件

javascript - 如何始终显示 anchor 标记的 alt 属性

javascript - 使用reactjs在crud应用程序中验证部分的建议

javascript - 使用 ng-file-upload 和 mongo gridfs 上传文件

node.js - NestJS + TypeORM 设计模式 : resolver vs service

node.js - Node Jsreport 语法错误 : Identifier 'err' has already been declared

javascript - 如何在 Mean Stack 中运行子进程