首页 > 数据库 >【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置

【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置

时间:2024-10-24 10:01:36浏览次数:5  
标签:设置 RestfulAPI 在线 NodeJS mongoDB 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.jsserver.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);

标签:设置,RestfulAPI,在线,NodeJS,mongoDB,env
From: https://www.cnblogs.com/sitarblogs/p/18498927

相关文章

  • 【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置
    本项目旨在学习如何快速使用nodejs开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师)由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序(并非循序渐进的教学文档)。建议配合项目源码node-mongodb-template。【NodeJS......
  • 【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将
    本项目旨在学习如何快速使用nodejs开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师)由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序(并非循序渐进的教学文档)。建议配合项目源码node-mongodb-template。【NodeJS......
  • 博客初始设置
    声明本文属于本人《从零开始美化博客》系列,系列详细信息请访问我的博客。你可以在我的github仓库中查看完整代码,或是在文末查看本文相关代码,相关代码遵循MIT协议,你可以在github仓库下的LICENSE文件查看详细协议。你可以在这里预览最新进展中的博客页面。Step\(1\)......
  • 基于FPGA的64QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不
    1.算法仿真效果      本课题是在博主以前写的文章《m基于FPGA的64QAM调制解调通信系统verilog实现,包含testbench,不包含载波同步》的升级,升级内容包括信道模块(可以设置SNR),误码率统计,同时修正了数据输入频率问题,从而提升了系统的仿真效率。 vivado2019.2仿真结果如下(完......
  • wsl ubuntu20.04设置core文件生成路径
    1.首先要确定允许生成core文件#在终端执行下列命令,执行后仅本次会话有效,如需每次都生效,可以添加到~/.bashrc文件中ulimit-cunlimited2.查看core文件的生成目录cat/proc/sys/kernel/core_pattern3.临时设置core文件的生成目录#先切换到root用户,然后输入,其中./表示生......
  • nodejs基于Vue的二手交易系统(源码+vue+部署文档+前后端分离等)
    收藏关注不迷路!!......
  • 虚拟机设置静态IP并启用桥接模式
    虚拟机设置静态IP并启用桥接模式一、准备工作在开始之前,请确保你已经安装了VMware或其他虚拟机软件,并且已经创建了一个虚拟机实例。此外,还需要了解宿主机的网络配置,包括IP地址、子网掩码、网关等信息,可通过ipconfig/all查看。记录上述信息:IPv4地址:10.10.97.210子网掩码:25......
  • 可以通过以下几种方法设置FTP用户权限
    在Linux系统中,可以通过以下几种方法设置FTP用户权限:使用chown命令:可以使用chown命令更改FTP用户所属的用户和组。例如,要将FTP用户的所有文件的所有者更改为ftpuser并将组更改为ftp,可以使用以下命令:sudochown-Rftpuser:ftp/path/to/ftpuser复制代码使用chmod命令:可以使用ch......
  • 腾讯云服务器设置自动快照
    腾讯云服务器设置自动快照对于购买腾讯云轻量主机的小伙伴来说,因为受限于轻量服务器的账户限制,腾讯云自带的备份快照功能只能保存两个,而且只能手动保存。如何设置自动快照保存呢?这里就分享一下腾讯云轻量服务器设置自动快照备份图文教程。设置教程如下:1.进入云函数界面:https:/......
  • ArcGIS002:软件自定义设置
    摘要:本文详细介绍安装arcgis10.2后软件自定义设置内容,包括工具条的启用、扩展模块的启用、如何加载项管理器、快捷键设置、样式管理器的使用以及软件常规设置。一、工具条的启用依次点击菜单栏【自定义】->【工具条】,根据工作需求勾选上常用的工具条。勾选后相应工具条自动......