node.js - 如何在 index.js 中包含给定模式
问题描述
我在 config.js 中有这个给定的模块。我想包括这是我的 index.js。我尝试了多种方法,但配置变量始终未定义。我试过这样。
const config = require('./config') //undefined
const config = require('./config')("dev") //error
const config = require('./config')["dev"] // error
const config = require('./config').get("dev")
这是我如何运行它
// my command.
npm run start:dev
"scripts": {
"start:prod": "set NODE_ENV=prod pm2 start index.js --watch",
"start:dev": "set NODE_ENV=dev && node index.js"
},
这是模块
let env = process.env.NODE_ENV;
require('dotenv').config();
const dev = {
app: {
port: parseInt(process.env.DEV_APP_PORT) || 3000
},
db: {
host: process.env.DEV_DB_HOST || 'localhost',
port: parseInt(process.env.DEV_DB_PORT) || 27017,
name: process.env.DEV_DB_NAME || 'myDB',
},
imagePath: "./profileImages/",
LogFillePath: "logs/combined.log",
ErrorFilePaht: "logs/error.log",
JwtSecret: process.env.JWT_SECRET
};
const prod = {
app: {
port: parseInt(process.env.PROD_APP_PORT) || 9000
},
db: {
host: process.env.PROD_DB_HOST || 'localhost',
port: parseInt(process.env.PROD_DB_PORT) || 27017,
name: process.env.PROD_DB_NAME || 'myDB'
},
imagePath: "./profileImages/",
LogFillePath: "logs/combined.log",
ErrorFilePaht: "logs/error.log",
JwtSecret: process.env.JWT_SECRET
};
const config = {
dev,
prod
};
module.exports = config[env];
我在 config.js 中有这个给定的模块。我想包括这是我的 index.js。我尝试了多种方法,但配置变量始终未定义。我试过这样。
解决方案
为您尝试这样的事情config.js
:
require("dotenv").config();
const dev = {
// ...
};
const prod = {
// ...
};
const configs = {
dev,
prod,
};
const config = configs[process.env.NODE_ENV];
if (!config) throw new Error("No valid configuration found, ensure your NODE_ENV is properly set");
module.exports = config;
然后你可以简单地
const config = require('./config');
推荐阅读
- python - 是否有使用 anova 比较两个或多个 Logistic 回归模型的 python 函数?
- python - cv2.solve 无法返回最小二乘解
- hadoop - hdfs + 每个递归文件夹的文件计数
- c# - 在 CosmosClient 中使用 LINQ 查询时查找 RequestCharge
- javascript - 如何使用 JS 在变量表达式周围添加 HTML 标签
- python-3.x - 在python中更改多边形坐标的长纬度值
- php - 在删除 select2 选项触发 ajax 从 mysql 中删除
- java - 在 itext7 中,如何通过 ColumnRenderer 绘制边框?
- node.js - Adonis:未定义 ReferenceError 视图
- node.js - 带有 React 的 Socket.io 在 5 条消息后表现异常