node项目部署相关问题
process.env
process.env属性返回一个对象,包含了当前Shell的所有环境变量。
通常的做法是,新建一个环境变量NODE_ENV,用它确定当前所处的开发阶段,生产阶段设为production,开发阶段设为develop或staging,然后在脚本中读取process.env.NODE_ENV即可。
运行脚本时,改变环境变量,可以采用下面的写法。
$ export NODE_ENV=production && node app.js
我的例子:
var config = {
dev:{
port:"",
dir:'./widget'
},
production:{
port:"",
dir:'/export/www/static/promote/widget'
}
};
// 通过NODE_ENV来设置环境变量,如果没有指定则默认为开发环境
var env = process.env.NODE_ENV || 'dev';
if (env == 'dev') {
module.exports = config.dev
console.log('dev环境');
} else if (env == 'production') {
module.exports = config.production;
console.log('production环境')
} else {
console.log("请注意,要传环境变量值,可选值:dev, production,反之默认为dev")
}
上线好用的依赖pm2管理web服务进程,supervisor,nodemon监听代码更改自动重启服务器。
参考资料:
阿里云主机Nginx下配置NodeJS、Express和Forever
新浪云、阿里云、百度云、谷歌云、亚马逊云的区别是什么,哪个更适合国内创业者使用?
node项目部署相关问题的更多相关文章
- Spring整合Redis&JSON序列化&Spring/Web项目部署相关
几种JSON框架用法和效率对比: https://blog.csdn.net/sisyphus_z/article/details/53333925 https://blog.csdn.net/wei ...
- vue+express+mysql项目总结(node项目部署阿里云通用)
原文发布于我的个人博客上:原文点这里 前面经历千辛万苦,终于把博客的所有东西都准备好了,现在就只等部署了.下面我介绍下我的部署过程: 一.购买服务器和域名 如果需要域名(不用域名通过ip也可以 ...
- Node.js 学习(七)Node项目部署工具之forever
平常无论是使用命令行还是终端通过node app.js启动项目时,当命令行或终端关闭时项目也就随之关闭了;forever则可以在cmd或ssh连接断开时,让项目一直运行,而且可以在项目崩溃时自动重启 ...
- 项目部署相关命令(pm2)
普通方式启动后台服务: nohup npm start & 关闭服务,需要找到进程号: lsof -i :3000 kill -9 进程号 通过pm2启动项目,可实现关闭自启动: 安装pm2: ...
- 在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器
配置域名 在阿里云找到主域名 进入主域名之后,右上角添加解析,添加子域名, 记录类型选择cname,主机记录填写子域名的名称,记录值为主域名,至此阿里云已经配置好了. 检查nginx安装 首先检查服务 ...
- 将vue+nodejs项目部署到服务器上(完整版)
1.后端使用express生成器 1.1.后台node项目部署 在node项目里安装cors依赖(跨域)npm install cors --save,在app.js文件中使用var cors = r ...
- 【运维技术】node项目使用strongloop进行部署相关教程
node项目使用strongloop进行部署相关教程 安装strongloop 下载安装node 解压到路径完成安装 使用软链方式配置环境变量 添加cnpm的淘宝镜像源 安装node-gyp的模块依赖 ...
- 服务器小白的我,是如何将 node+mongodb 项目部署在服务器上并进行性能优化的
前言 本文讲解的是:做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 的服务器上,并进行性能优化,达到页面 1 秒内看到 ...
- node项目自动化部署--基于Jenkins,Docker,Github(2)配置节点
上一篇文章中准备工作已经完成的差不多了 这一篇主要讲解 Jenkins 上面的相关配置 为了让代码部署到所有的子节点上 所以我们首先需要在 Jenkins 中添加我们希望代码部署到的节点 配置节点 首 ...
随机推荐
- [转]python的requests发送/上传多个文件
1.需要的环境 Python2.X Requests 库 2.单字段发送单个文件 在requests中发送文件的接口只有一种,那就是使用requests.post的files参数, 请求形式如下: ...
- python-类的方法与类的成员
preface include: @classmethod @staticmethod @property 私有属性 类的成员 #!/usr/bin/env python class animal(o ...
- C#常用数据加密类
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Sec ...
- Spring学习总结六——SpringMVC一
一:什么是springMVC MVC,顾名思义,m就是model模型,包括处理业务.访问数据库以及封装数据实体类等,view视图层 负责和用户进行交互,就是展示给用户的部分,包括jsp页面,html等 ...
- 输入控件tagsinput
摘要: tagsinput是一款基于jQuery的插件.具有组织输入内容.校验.backspace删除等功能.当你在输入框输入结束按下enter键,tagsinput会将你输入的内容用标签封装,每 ...
- oop思维意识,类 模块命名空间,类扩展之继承 、组合、mixin三种模式
python的书都是讲怎么创建类怎么实例化对象,一般会用使用了,但还不具备这种编程意识.这是从python学习手册第四版节选出来的,书中说oop不仅是一种技术,更是一种经验.学习大神的看法,为什么需要 ...
- [原]unity3D 相机跟随
using UnityEngine;using System.Collections; public class CameraFollow : MonoBehaviour { p ...
- Dubbo调用链(version:2.5.3)
Consumer 调用 Provider的过程: (CONSUMER)Dubbo服务调用处 --> 调用RPC代理 --> InvokerInvocationHandler#invoke( ...
- 6.824 Lab 5: Caching Extents
Introduction In this lab you will modify YFS to cache extents, reducing the load on the extent serve ...
- c# new的三种用法
在 C# 中,new 关键字可用作运算符.修饰符或约束. 1)new 运算符:用于创建对象和调用构造函数.这种大家都比较熟悉,没什么好说的了. 2)new 修饰符:在用作修饰符时,new 关键字可以显 ...