【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置
本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师)
由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序(并非循序渐进的教学文档)。建议配合项目源码node-mongodb-template 。
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (一):项目简介及安装依赖
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (四):状态码的使用
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (五):POST上传文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (六):token的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将在线版mongoDB变为本地版)
Cors的设置
跨域资源共享
app.js增加如下代码
//app.js
app.use((req,res,next)=>{
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept,Authorization");
if(req.method === "OPTIONS"){
req.header("Access-Control-Allow-Methods", "PUT,POST,DELETE,PATCH,GET");
return res.status(200).json();
}
next();
})
res.header("Access-Control-Allow-Origin", "*");
标识允许那个域,*比较粗暴,表示全部都允许。
.env文件的设置
存储环境变量的文件,可以借助依赖dotenv
文件夹。
- 安装依赖
pnpm i --save dotenv
- 引用依赖
注意:1、在app.js
或server.js
文件中引用依赖;2、必须写在所有引用的最上方
//app.js
require("dotenv").config();
...
- .env文件内容
MONGO_ATLAS_PW
指 在线mongoDB的连接密码
JWT_KEY
指 JSON Web Token(JWT)
密码管理key
MONGO_ATLAS_PW=***
JWT_KEY=***
- 变量使用
在线mongoDB的连接
mongoose.connect('mongodb+srv://db:'
+process.env.MONGO_ATLAS_PW
+'@test.gx6wc.mongodb.net/?retryWrites=true&w=majority&appName=test');
mongoose.Promise = global.Promise;
密码加密与校验
const token = jwt.sign({
email:user[0].email,
userId:user[0]._id
},process.env.JWT_KEY,{
expiresIn:"1h",
});
const decoded = jwt.verify(token,process.env.JWT_KEY);