在我的节点应用程序中,我想在config.js
文件中设置生产和开发。
为此,我准备了所有东西,但我仍然在发送一些信息。
我想根据我的开发模式从config fiel获取配置数据,例如数据库凭据。如果我实时上传,则应用将使用实时信誉。另一方面,如果我使用本地,则应该使用本地证书。
module.exports = function () {
console.log("Process env is ::: ", process.env.NODE_ENV);
if (process.env.NODE_ENV == 'production') {
return {
db : {
host:'localhost',
batabase:'dbname',
username:'',
password:''
}
}
} else {
return {
db : {
host:'localhost',
batabase:'dbname',
username:'',
password:''
}
}
}
};
非常感谢。我已从此answer
引用答案 0 :(得分:1)
请尝试这种方式。
module.exports = (function () {
process.env.NODE_ENV='development';
if(process.env.NODE_ENV === 'production'){
// Config data of Live
}else{
//Config data of Local
}
})()
这对我来说有效。 :)
答案 1 :(得分:0)
process.env指的是环境变量,它是在您启动Node.js应用程序时存在的。 (它是操作系统的一部分)
部署到云时,通常已经为您处理了(process.env.NODE_ENV =生产)。 一些云提供商甚至为您提供了通过GUI对其进行控制的选项。
但是对于本地环境,可以使用.dotenv package。 (https://github.com/motdotla/dotenv)
使用此软件包,您可以在项目顶部创建一个.env文件,
然后写下NODE_ENV = local / staging / production
请注意,您始终可以在shell中运行:
export NODE_ENV=production
(请注意!!) 在您启动Node.js应用之前,这也会给您带来效果 控制process.env
仅在需要时使用其他文件中的配置文件。
const config = require('path/to/config.js');
然后将根据NODE_ENV更改config.data.host