Javascript NodeJS动态环境变量设置
我创建了一个NodeJS服务器,并尝试动态设置环境变量。但我面临一个奇怪的问题。我创建了一个Javascript NodeJS动态环境变量设置,javascript,node.js,Javascript,Node.js,我创建了一个NodeJS服务器,并尝试动态设置环境变量。但我面临一个奇怪的问题。我创建了一个env.js文件,下面是相关代码: const环境={} environment.dev={ 港口:3000, envName:'dev' } environment.prod={ 港口:5000, envName:'prod' } const currentEnvironment=typeof process.env.NODE_env==='string' ? process.env.NODE_env
env.js
文件,下面是相关代码:
const环境={}
environment.dev={
港口:3000,
envName:'dev'
}
environment.prod={
港口:5000,
envName:'prod'
}
const currentEnvironment=typeof process.env.NODE_env==='string'
? process.env.NODE_env
:“dev”
console.log('current environment:',currentEnvironment)//获取currentEnvironment:prod
console.log('environment obj:',environment)//正确获取环境obj
log('getting obj from environment obj:',environment[currentEnvironment])//但未定义
const environment ToExport=环境类型[currentEnvironment]=“对象”
? 环境[当前环境]
:environment.dev
module.exports=environmentToExport
应该有双符号“SET NODE\u ENV=dev&&nodemon index”
,如果您对服务器不确定,可以使用跨环境软件包将您的npm脚本重新定义为“prod”:“SET NODE\u ENV=prod&nodemon index”
(注意,prod
和&
字符之间的空格已被删除)。对dev
脚本也执行相同操作,例如“dev”:“设置节点=dev&nodemon索引”,
@Girish single或double&
,两者都有效。@RobC问题不在我的脚本中,我得到的是正确的NODE_ENV
值。@Robin-我相当确定问题在你的npm脚本中。尝试添加以下;console.log('current environment number of characters:',currentEnvironment.length)
到另一个控制台上方的node.js脚本。记录语句。然后通过CLI按原样使用代码运行npm run prod
。它可能打印5
,即prod
末尾有一个空格字符。但是,如果下次将npm脚本更改为“prod”:“设置NODE_ENV=prod&nodemon index”
(根据我之前的评论),然后npm运行prod
,它应该再次打印正确的字符数,即4
。