一、区分当前的环境
项目会区分开发环境、生产环境与测试环境,那在Node项目中,应该从哪里进行环境的区分呢?
Node项目会读取电脑系统中的环境变量,所以可以在环境变量中新建系统变量NODE_ENV
,值为development
表示开发环境,值为production
表示为生产环境。
那在代码中如何获取环境变量呢?
// 获取当前的环境 开发环境 还是生产环境
console.log(process.env.NODE_ENV);
二、打印请求信息
如果想要把客户端发送到服务器端的请求信息打印到控制台中,可以使用第三方模块morgan。
1.安装npm install morgan
2.引用const morgan = require('morgan')
3.使用中间件拦截所有的请求app.use(morgan('dev'))
打印出的请求信息:
当然,这个可以设置为在开发环境下进行打印,如果是生产环境的话就不需要配置这些信息了。
三、config配置模块
1.安装config配置模块:npm install config
2.项目目录中新建config
文件夹,新建default.json
, development.json
, production.json
文件,添加不同环境下的不同配置信息
{
"title": "博客管理系统---开发环境"
}
{
"title": "博客管理系统---生产环境"
}
3.app.js
中引入config
配置模块const config = require('config')
4.获取配置文件中的信息config.get('title')
config
模块会读取当前的系统环境,如果是开发环境的话会去development.json
中读取title
属性,如果文件中没有title
属性,会去default.json
中读取
5.config
允许将敏感配置信息(如密码)存储在环境变量中
在config
文件夹中建立custom-environment-variables.json
文件,配置项属性的值填写系统环境变量的名字
这样,在其他json文件中就不需要写密码这一项了,而且密码也没有直接暴露出来,在一定程度上保证了安全性。