【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);
相关文章:
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置
本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师) 由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序࿰…...
[python flask 数据库ORM操作]
一、链接数据库 我们选择的框架是flask-sqlAlchemy 这个框架是对pymysql的封装。 连接数据库 #导入包 from flask_sqlalchemy import SQLAlchemy #创建flask app对象 app Flask(__name__) #设置配置信息 HOSTNAME "localhost" PORT 3306; USERNAME "root&…...
【JavaScript】如何优雅的编码if判断中的一个变量多个或条件
前言 你是否写过这样代码: ...if (status 1 || status 4 || status 6)...代码场景是这样的,记录有多个状态,当状态等于1,4,6时要做相同的逻辑。今天我们就分享一下如何简化写法,让代码更好看,更优雅。 使用 switch 语句 ...…...
SaaS云诊所系统源码,基于云计算技术的SAAS模式诊所管理系统,适用于诊所、门诊、卫生服务站、卫生站
SaaS云诊所管理系统源码,门诊管理系统源码,诊所药店云平台源码 云诊所管理系统是基于云计算的SAAS模式诊所管理系统,全面适用于诊所、门诊、卫生服务站、卫生站、卫生所、中医馆、药店、私人个体诊所、中小型门诊、乡村卫生室、医务室以及社…...
字节,AI产品经理面试,拿下offer!
如果大家最近打算找ai产品经理这方面的工作,可以对照着脑图准备起来啦。 这篇文章给大家讲解两道高频问题: 1)AI产品经理和传统产品经理有什么区别 2)AI 产品经理的工作职责和能力要求是什么? 这两个问题看似简单&a…...
Postgresql pgsql 插件之postgis 安装配置
相关链接: pgsql编译安装 一、说明 postgis是pgsql最强大的几个插件之一,可以用于地理信息系统(gis)的搭建 二、插件安装启动 由于我的pgsql是编译安装的,所以插件也是编译安装,更加灵活。 1.进入到源…...
单片机STC8H8K64U开发板_RA6809开发板 驱动彩屏显示
单片机STC8H8K64U开发板,型号RT8H8K001 预留Type C接口,可供电SWD下载: RA6809开发板,型号RT6809CNN01 预留Type C接口供电,预留MCU接口、电容触摸屏接口、液晶屏接口: 双臂合一,驱动和控…...
Redis底层和缓存雪崩,击穿,穿透
一、Redis的数据结构 1.动态字符串 我们知道Redis中保存的Key是字符串,value往往hi字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过,Redis 没有直接使用c语言的字符串,因为c语言字符串存在许多问题: …...
[Java基础] 集合框架
往期回顾 [Java基础] 基本数据类型 [Java基础] 运算符 [Java基础] 流程控制 [Java基础] 面向对象编程 [Java基础] 集合框架 [Java基础] 输入输出流 [Java基础] 异常处理机制 [Java基础] Lambda 表达式 目录 List 接口 数据结构 最佳实践 实战代码 Set 接口 数据…...
机器学习基础:算法如何让 AI 自我学习
大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 AI工具集1:大厂AI工具【共23款…...
25届字节跳动 抖音NLP算法工程师 面经
目录 一面/技术面 2024/08/30二面/技术面 2024/09/13 一面/技术面 2024/08/30 深挖实习(最近的一段实习)深挖论文(让我共享屏幕,然后对着自己的论文讲)论文做了多久完成的?主要都做了哪些工作?…...
转行网络工程师以后的就业前景如何?
就业前景如何本质上取决于你在这行业的发展状况,而发展状况又主要由你的技术水平和与人交流的能力所决定。 如果你的技术能力仅限于"安服仔"、"脚本小子"等入门级水平,那你的职业发展可能会像浮萍一样漂泊不定。但如果你能轻松编写…...
docker 和 containerd 关系
containerd 是一个开源的容器运行时,它是用来管理容器生命周期的守护进程。containerd 支持 Docker 和其他容器格式,并且是许多现代容器编排系统(如 Kubernetes)的基础组件之一。 containerd 提供了一个命令行工具 ctr࿰…...
算法-二叉树的最大路径和
为了找到二叉树的最大路径和,我们需要考虑所有可能的路径,包括不经过根节点的路径,所以其实如果你从整体上来一条路径一条路径的遍历,太复杂,我们可以换个思路,从每个节点出发,就把那个节点当成…...
解决url含%导致404错误
String imageUrl;// 使用WebClient下载图片WebClient webClient WebClientUtil.getWebClient();Mono<ByteArrayOutputStream> byteArrayOutputStreamMono webClient.get().uri(imageUrl).retrieve().bodyToFlux(DataBuffer.class) // 获取图片内容的DataBuffer流.reduc…...
[Linux Codec驱动]音频路由概念
1. 音频路由的基本概念 源(Source):音频信号的发出方,通常是一个音频输入设备,如麦克风、音频播放设备等。接收端(Sink):音频信号的接收方,通常是音频输出设备ÿ…...
母线槽温度监测的哪个部位?安科瑞母线槽测温解决方案-安科瑞黄安南
安科瑞生产厂家:黄安南 壹捌柒/陆壹伍/零陆贰叁柒 母线槽简单来说充当着电缆的角色只不过它是大电流的输送设备,一般是铜排或者绿排做导体,用非烯性绝缘材料做支撑,搭配金属外壳。相对于电缆来说母线槽的载流能力强、电能损耗低、…...
《深度学习》—— 模型的部署
文章目录 一、部署方式二、部署步骤三、注意事项 深度学习中模型的部署是将训练好的模型应用到实际场景中的过程,以下是对深度学习模型部署的详细解析: 一、部署方式 嵌入式设备部署:将深度学习模型部署到嵌入式设备中,如智能手机…...
多IP访问浏览器
添加多个ip地址 nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.61.100/24 ipv4.addresses 192.168.61.200/24 ipv4.addresses 192.168.61.128 ipv4.gateway 192.168.61.2 ipv4.dns 114.114.114.114...
1024程序员节福利放送 | AI 照片修复魔法,一键重拾旧时记忆
程序员充电礼包 今天是 1024 程序员节,小贝特意为大家准备了重磅福利!新用户使用邀请码「1024」注册 http://OpenBayes.com,即可获得 20 小时单卡 A6000 的免费使用时长,价值 80 元,资源 1 个月有效。仅限今日…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
