javascript - 使用某些设置启动nodejs应用程序?

标签 javascript node.js

有没有办法用nodejs制作一个可以使用附加参数启动的应用程序? 几个例子:

node myApp.js -nolog

将使用自定义noLog=true参数启动应用程序,这样事情就不会被console.logged..

node myApp.js -prod

将在一组特定的生产设置中启动应用程序。

我不确定 Node 中是否已经有任何等效项。如果这是重复的,可能是因为我什至不知道搜索该特定问题答案的关键字。

请赐教!

最佳答案

要读取命令行参数,您需要解析process.argv,或使用第三方模块,例如 minimist :

var argv = require('minimist')(process.argv.slice(2));

// do something ...
var config = argv.config;
if (config === 'dev') {
    // set the flag
}

然后通过 node app.js --config=dev 启动您的应用程序。

在大多数情况下,您需要包含多个选项,并且在代码中手动将它们硬编码是一个坏主意。推荐的方法是将它们写在配置文件中,然后使用 require 进行解析。你可以使用 .js.json 来存储配置,但是 .js 更方便,因为 JSON 格式太严格了,尤其是它甚至不允许你发表评论。

所以这是一个解决方案。按如下方式组织您的配置:

config
  ├── dev.js
  ├── production.js

product.js 被定义为“基类”,它存储所有必需的设置,并使用 module.export 公开它们。

module.exports = {
    db: {
        backend: 'mysql',
        user: 'username',
        password: 's3cr3t'
        // ...
    }
};

dev.js 继承生产中的所有属性,覆盖该值以适合您的本地环境。建议在版本控制系统(git、SVN等)中忽略此文件,这样您的本地配置就不会与项目中的其他配置发生冲突。要深层复制并合并对象,node.extend可能有帮助。

var base = require('./production'),
    extend = require('node.extend');

var overrides = {
    db: {
         user: 'root',
         password: ''
    }
};

module.exports = extend(overrides, base);

关于javascript - 使用某些设置启动nodejs应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26947092/

相关文章:

javascript - 让 Meteor 响应 html 元素

javascript - 无法使用nodeJS在html中设置Image src

javascript - NodeJS : Redirect Client to Another Worker/Instance

node.js - 如何通过 Winston 登录 Socket.io?

javascript - Jscolor 在第一次回发新部署后停止工作,但在回发重新加载后继续工作

javascript - 类型错误 : 'addNode' is not a function

javascript - 拖动未分组在 `g` 标记中的多个元素?

javascript - 当用户点击并按住图片时停止超时

node.js - 将 Jquery UI 与express.js 结合使用

php - 廉价的客户端识别和正确的 SSL 客户端身份验证