expree项目开发完,涉及到不同环境,要在启动到时候就要配置好环境变量,

packge.json文件如下:

  "scripts": {
"dev": "NODE_ENV=development DEBUG=name nodemon ./bin/www --name 'name'",
"start": "NODE_ENV=production pm2 start ./bin/www --name 'name'",
"uat": "NODE_ENV=uat pm2 start ./bin/www --name 'name'",
"testStart": "cross-env node ./bin/www --name 'name'"
}

在业务场景中,根据不同环境取不同到参数配置:

config/index.js 文件如下:

var path = require('path');
// 通过NODE_ENV来设置环境变量,如果没有指定则默认为开发环境
var env = process.env.NODE_ENV || 'development';
console.log('env='+env);
env = env.toLowerCase();
// 载入配置文件
var file = path.resolve(__dirname, env);
try {
var config = module.exports = require(file);
// console.log('Load config: [%s] %s', env, file);
} catch (err) {
// console.error('Cannot load config: [%s] %s', env, file);
throw err;
}

同时 config文件夹下,以你到环境变量为名,命名如下文件 development.js 、 production.js、uat.js.

上述写法,本地mac上没有什么问题,执行 npm run uat 的时候,就是process.env.NODE_ENV=uat.

但是部署到linux 系统uat环境,process.env.NODE_ENV一直为undefined。也就是启动的时候

NODE_ENV=uat pm2 start ./bin/www --name 'name' 这个没有正确传递过去。

解决方案如下:
根目录新建一个ecosystem.config.js
module.exports = {
apps : [
{
name: "namexxx",
script: "./bin/www",
watch: true,
env: {
"PORT": ,
"NODE_ENV": "development"
},
env_uat: {
"PORT": ,
"NODE_ENV": "uat"
},
env_production: {
"PORT": ,
"NODE_ENV": "production",
}
}
]
}

package.json修改如下:

  "scripts": {
"dev": "NODE_ENV=development DEBUG=namexxx nodemon ./bin/www --name 'namexxx'",
"start": "pm2 start ecosystem.config.js --env production",
"uat": "pm2 start ecosystem.config.js --env uat"
},

注意  --env后面的参数,要跟ecosystem.config.js 配置项里面的env_后面的保持一致。

参考文档:http://pm2.keymetrics.io/docs/usage/environment/

EXPRESS项目PM2启动NODE_ENV传参数不生效问题解决方法的更多相关文章

  1. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  2. soapUI参数中文乱码问题解决方法&soap UI工具进行web接口测试

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  3. vue 项目重定向时需要传参数

    1.在项目首页路由因需要进行传参数,例如需要重定向到:path: "/index?from=0" 2.重定向时写法如下: redirect: {path: '/index',que ...

  4. app间互相启动及传参数

    http://blog.sina.com.cn/s/blog_13bc6705b0102wmc5.html http://blog.csdn.net/iefreer/article/details/8 ...

  5. 微信小程序传参数的几种方法

    1,navigator 跳转时 wxml页面(参数多时可用“&”) <navigator url='../index/index?id=1&name=aaa'></n ...

  6. C# form 传参数的几个方法

    方法一:传值最先想到的,Form2构造函数中接收一个string类型参数,即Form1中选中行的文本,将Form2的TextBox控件的Text设置为该string,即完成了Form1向Form2的传 ...

  7. setintervalue传参数的三种方法

    http://www.cnblogs.com/wkylin/archive/2012/09/07/2674911.html http://www.bhcode.net/article/20110822 ...

  8. 传参数应该用哪种形式——值、引用、指针?

    类型:C++ & Qt4,创建时间:十二月 30, 2011, 7:43 p.m. 标题无"转载"即原创文章,版权所有.转载请注明来源:http://hgoldfish.c ...

  9. 【ASP.NET Core】给中间件传参数的方法

    最近博客更新频率慢了些,原因有三: 其一,最近老周每星期六都录 ASP.NET Core 的直播,有些内容在视频里讲过,就不太想在博客里面重复.有兴趣的话可以去老周的微博看,或者去一直播,直播帐号与微 ...

随机推荐

  1. NLP VS NLU

    NLP(Natural Language Processing )自然语言处理:是计算机科学,人工智能和语言学的交叉领域.目标是让计算机处理或“理解”自然语言,以执行语言翻译和问题回答等任务.NLU  ...

  2. FPGA Asynchronous FIFO设计思路(2)

    FPGA Asynchronous FIFO设计思路(2) 首先讨论格雷码的编码方式: 先看4bit的格雷码,当MSB为0时,正向计数,当MSB为1时,即指针已经走过一遍了,最高位翻转,此时的格雷码是 ...

  3. 新建服务器出现错误 Peer authentication failed for user "postgres" 的解决办法

    用pgadmin3 新建服务器出现错误 Peer authentication failed for user "postgres" 在stackoverflow上找到答案,出现此 ...

  4. [转]ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义

    http://blog.csdn.net/qq_19524879/article/details/51313205 ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义 ...

  5. stm32之CMSIS标准、库目录、GPIO

    一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...

  6. webRTC中音频相关的netEQ(二):数据结构

    上篇(webRTC中音频相关的netEQ(一):概述)是netEQ的概述,知道了它主要是用于解决网络延时抖动丢包等问题提高语音质量的,也知道了它有两大单元MCU和DSP组成.MCU 主要是把从网络收到 ...

  7. web安全类

    web安全类主要分为两个部分:CSRF和XSS 一.CSRF 基本概念:CSRF,通常称为跨站请求伪造,英文名Cross-site request forgery 缩写为CSRF; 怎么防御 1.To ...

  8. connected standby

    参考链接 https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby http ...

  9. Python绘图的颜色设置

    (转载):Python中的matplotlib函数中的颜色选取 转载链接:https://www.cnblogs.com/darkknightzh/p/6117528.html 原文内容:完全出自于自 ...

  10. 简单的PHP单例模式

    class MySQL { private static $instance; // 阻止外部实例化 private function __construct() { # code... } // 阻 ...