Javascript 默认情况下,无论运行的脚本是什么,它都会工作
无论运行的脚本是什么,都始终执行默认值 这是我的密码:Javascript 默认情况下,无论运行的脚本是什么,它都会工作,javascript,node.js,Javascript,Node.js,无论运行的脚本是什么,都始终执行默认值 这是我的密码: import { Pool } from 'pg'; import config from './../config'; const connectionString = () => { switch (process.env.NODE_ENV) { case 'development': console.log('0'); return config.db_dev.connectionString;
import { Pool } from 'pg';
import config from './../config';
const connectionString = () => {
switch (process.env.NODE_ENV) {
case 'development': console.log('0'); return config.db_dev.connectionString;
case 'production': console.log('1'); return config.db_prod.connectionString;
case 'test': console.log('2'); return config.db_test.connectionString;
default: console.log('3'); return config.db_dev.connectionString;
}
}
export default new Pool({
connectionString: connectionString(),
ssl: true,
});
文件package.json
:
"scripts": {
"start": "nodemon --exec babel-node src/index.js",
"devbuild": "SET NODE_ENV=development & babel src --out-dir dev-hyperspotters-backend",
"build": "SET NODE_ENV=production & babel src --out-dir hyperspotters-backend",
"test": "SET NODE_ENV=test & mocha --timeout 10000 --require @babel/register"
},
哪里出错了?看起来连接字符串没有传递给函数
const connectionString = (process.env.NODE_ENV) => {
switch(process.env.NODE_ENV){
case 'development':
return 0
case 'production':
return 1
case 'test':
return 2
default:
return 3
}
}
Pool = {
connectionString: connectionString(process.env.NODE_ENV),
ssl: true
}
如何将数据库链接正确传输到pol?尝试导出节点\u ENV=test;mocha…然后,正如@ponsfrilus所建议的,环境变量没有正确设置。按照建议使用
export NODE_ENV
,或者使用像dotenv&
这样的库至少在Linux中是错误的-不确定windoze@MegaRoks只需使用这个,它是跨平台的:给函数一个错误,该函数在箭头函数参数的左侧无效。显示它=>{
你能告诉我们左手边的内容是什么吗?我修复了这个错误;函数中采用了developmentMode
变量,但这并没有解决我的问题。默认的分支仍然在执行。太好了。所以现在我假设函数中采用了process.env.NODE_env。你能验证一下它是否正确吗s实际是一个字符串,它在开关表达式正在检查的一种情况下打孔?