#node.js
#node.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 amp;amp; 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 . Я пробовал несколько способов, но переменная конфигурации всегда не определена.
Я пробовал так.
Комментарии:
1. попробуйте без пробелов
set NODE_ENV=devamp;amp;node index.js
, я попробовал ваш mac-код, и он работает нормально.
Ответ №1:
Попробуйте что-то подобное для вашего 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');
Комментарии:
1. конфигурация по-прежнему не определена с ошибкой «Не найдена допустимая конфигурация, убедитесь, что ваш NODE_ENV установлен правильно», хотя у меня есть console.info печать того, что env является dev в верхней части config.js досье.
2. Если вы добавите
NODE_ENV=dev
в свой.env
файл?3. Спасибо, я понял это, в скрипте было место между dev и amp;amp; «start:dev»: «set NODE_ENV=dev amp;amp; node index.js »