在node.js中设置应用生产和开发模式

时间:2018-11-22 16:34:06

标签: node.js

在我的节点应用程序中,我想在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

引用

2 个答案:

答案 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