文章问题导向
如何使用环境变量?根据环境变量配置
如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案
环境变量
根据使用环境的不同而设置不一样的配置
为什么要使用环境变量?
1,保护隐私数据
2,根据环境动态配置,如开发环境和生产环境配置不同,需要区分配置
node对象
全局对象:process是node中的全局对象,无需引入即可使用
环境变量:process.env则是用于配置环境变量
设置环境变量
切换到当前项目目录,windows系统使用关键字set,mac系统使用export,不区分大小写
语法:
设置
set PORT=9092
set(关键字) PORT(环境变量名)=9092(环境变量值)
查看
set PORT
删除
set PORT=
获取环境变量
node中都是这样的获取方式,不管是express,koa,nest
process.env.PORT
import {
NestFactory } from '@nestjs/core';
import {
Logger } from '@nestjs/common';
import {
AppModule } from './app.module';
const PORT = process.env.PORT || 8000; 获取环境变量
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(PORT, () => {
Logger.log(
`服务已经启动,接口请访问:http://wwww.localhost:${
PORT}`,
);
});
}
bootstrap();
实际应用
逻辑
首先,在启动项目时,根据启动命令,设置开发环境 或 生产环境变量
然后,在文件中,读取环境变量,根据环境变量配置
第一步:安装
yarn add cross-env
cross-env的作用是兼容window系统和mac系统来设置环境变量
第二步:在package.json中配置
开发环境development
生产环境production
"scripts": {
"start:dev": "cross-env NODE_ENV=development nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod"<