有没有办法用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/