有没有办法制作一个可以使用其他参数启动的nodejs的应用程序? 几个例子:
node myApp.js -nolog
会使用自定义noLog=true
参数启动应用程序,因此事情不会是console.logged ..
node myApp.js -prod
将在一组特定的生产设置中启动应用程序。
我不确定节点中是否有任何等效的内容..如果这是重复的,可能是因为我甚至不知道搜索此特定问题的关键字的答案。
启发我!
答案 0 :(得分:1)
要读取命令行参数,您需要解析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
production.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);