Node.js环境变量查询求助:命令行查看及代码定义排查
解决你的Node.js环境变量问题
嘿,这两个问题我都碰到过,给你讲讲怎么处理:
1. 查看Node.js相关的底层环境变量
环境变量分两种情况,看你要查哪种:
- 系统/Shell级的环境变量:直接在bash里执行
env或者printenv,就能列出当前Shell会话里所有的环境变量,Node.js启动时会继承这些变量。如果要找特定变量,比如MLAB_URI,可以用printenv MLAB_URI,变量存在就会输出值,不存在则无输出。 - Node.js进程实际能访问到的环境变量:有时候系统变量可能因为Shell配置问题没被Node继承,或者你想确认Node进程里的变量状态,可以写个简单的Node脚本:
然后运行// env-check.js console.log(process.env);node env-check.js,就能看到Node进程能读取到的所有环境变量。要是只想看特定变量,更省事的方式是直接在命令行执行:node -e "console.log(process.env.MLAB_URI)"
2. 解决bash: process.env.MLAB_URI: command not found的错误
这个报错太正常了——process.env是Node.js的内置API,bash根本不认识这个语法!你直接在bash里敲这个,bash会把它当成一个命令来执行,自然找不到对应的命令。
要查看Node.js代码里定义的环境变量(比如你在代码里手动设置的process.env.MLAB_URI = 'xxx'),有两种可行办法:
- 如果你能修改代码,就在设置变量的地方加一行
console.log(process.env.MLAB_URI),然后运行你的Node程序,就能在控制台看到值了。 - 不想改代码的话,可以用Node的
-e参数直接执行一段代码,前提是你的代码里的变量定义是全局或者能被这段代码访问到的(局部变量就不行)。比如如果变量是在你的主文件app.js里设置的,你可以这样:
这样Node会加载你的node -e "require('./app.js'); console.log(process.env.MLAB_URI)"app.js,然后输出变量值。
内容的提问来源于stack exchange,提问作者JS Bach
相关产品推荐
相关产品推荐

