开发环境搭建
服务端自动刷新
nodemon监听文件和目录的修改,然后重启 node 程序;
nodemon 是对 node 的包装,在使用的时候只需要使用nodemon命令替换node命令。
使用:nodemon [your app code]
环境配置 NODE_ENV
后端项目开发过程中,经常会涉及到一些敏感信息,例如数据库密码、第三方服务秘钥等。 这些敏感信息不宜硬编码到项目中,通常将这些信息以环境变量的形式进行管理。
NODE_EVN 是一个环境变量,因为 Express 框架而流行,形成的非标准既定规范,用来配置程序的运行环境;
Node 程序在运行的过程中可以使用 NODE_EVN 环境变量判断运行环境来做相应的处理逻辑;
按照惯例 NODE_EVN 用来指导运行环境到底是开发环境还是生产环境,跟进不同的环境进行不同的日志记录、错误处理和调试逻辑;
按照约定 NODE_EVN 只能为production或development这两个值。
- NODE_EVN 获取:
var environment = process.env.NODE_ENV- 在 Express 中可以使用:
app.get('env')
- NODE_EVN 设置:
- 系统环境变量中默认未设置 NODE_EVN 值为
undefined - linux & mac:
export NODE_ENV=production - windows:
set NODE_ENV=production
- 系统环境变量中默认未设置 NODE_EVN 值为
- 使用
cross-env可以兼容不同平台设置环境变量- 在 NODE_ENV=xxxxxxx 前面添加 cross-env:
cross-env NODE_ENV=development nodemon index.js
- 在 NODE_ENV=xxxxxxx 前面添加 cross-env:
守护进程
使用nohup命令配合&后台运行程序nohup node xxx.js &,&让命令在后台运行,nohup命令做了三件事:
- 阻止
SIGHUP命令发生到这个进程,保证命令行窗口关闭不影响程序运行 - 关闭标准输入,该进程不能够接收任何输入
- 将标准输出和标准错误输出重定向到
nohup.out
如何关闭nohup启动的进程
- 使用
jobs -l命令可以查看后台运行的程序,不过只能在查看当前终端的后台任务。 - 使用
ps -aux|grep xxx命令查看运行进程 - 使用
lsof -i:xxxx或netstat -ap|grep xxxx命令查看端口占用