使用express写接口
创始人
2025-05-30 02:01:50
0

创建API路由模块

在这里插入图片描述

编写GET请求

在这里插入图片描述

编写POST请求

在这里插入图片描述

跨域问题

在这里插入图片描述在这里插入图片描述

在这里插入图片描述在路由前创建

//配置cors中间件,解决接口跨域问题
const cors = require('cors')
app.use(cors())

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述预检请求不会发送实质性的数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//导入数据库模块
const mysql = require('mysql')//建立于mysql数据库的连接方式
const db = mysql.createPool({host: '127.0.0.1',port: 23306,user: 'root',password: "0071hanxiaolei",database: 'mybatis'
})//测试mysql是否可以正常工作
db.query('select 1', (err, results) => {//mysql 模块工作期间报错if (err) return console.log(err.message)//能够执行的sql语句console.log(results)
})

查询数据

在这里插入图片描述

//查询users表中的所有数据const sqlstr = 'select * from tb_user'db.query(sqlstr, (err, results) => {//查询数据失败if (err) return console.log(err.message)//查询数据成功//注意如果执行的时select 查询语句,则执行的结果时数组console.log(results)
})

插入数据

在这里插入图片描述

//向tb_user中,新增一条数据,
const user = {username: 'spin',password: '333333',gender: '1',addr: '北京'
}
//定义待执行的sql语句
const sqlstr3 = 'insert into tb_user(username,password,gender,addr) values(?,?,?,?)'//执行sql语句
db.query(sqlstr3, [user.username, user.password, user.gender, user.addr], (err, results) => {//执行sql语句失败if (err) return console.log(err.message)//成功了//知意这里执行的是insert into插入语句,则results是一个对象//可以通过 affectedRows 属性,来判断是否插入数据成功if (results.affectedRows == 1) {console.log("插入数据成功")}
}) 

在这里插入图片描述
注意:
需要表的字段与我们插入的属性一一对应

//演示插入数据的便捷方式
const sqlstr4 = 'insert into tb_user set ?'
//执行sql语句
db.query(sqlstr4, user, (err, results) => {if (err) return console.log(err.message)if (results.affectedRows == 1) {console.log("插入成功")}
})

更新数据

在这里插入图片描述

//定义sql语句
const sqlstr5 = 'update tb_user set username=?,password=? where id=?'
//执行sql语句
db.query(sqlstr5, [userinfo.username, userinfo.password, userinfo.id], (err, result) => {if (err) return console.log(err.message)//执行update语句,返回的也是一个对啊想,可以通过affectedRowsif (result.affectedRows == 1) {console.log("更新成功")}
})

在这里插入图片描述

//向tb_user中,新增一条数据,
const user = {username: 'spin',password: '333333',gender: '1',addr: '北京'
}
//演示更新用户的便捷方式
const sqlstr6 = 'update tb_user set ? where id=?'
db.query(sqlstr6, [userinfo, userinfo.id], (err, results) => {if (err) return console.log(err.message)if (results.affectedRows == 1) {console.log("更新成功")}
})

删除数据

在这里插入图片描述
在这里插入图片描述

web开发模式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

session认证机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

session中间件的使用

在这里插入图片描述

在这里插入图片描述

向session中存数据

在这里插入图片描述

从session中取数据

在这里插入图片描述

清空session

在这里插入图片描述

JWT

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

JWT的使用

在这里插入图片描述
在这里插入图片描述d第二条高版本现在这么写

const {expressjwt} =require('express-jwt')

在这里插入图片描述
这个字符串是随意的,

生成token

在这里插入图片描述

将token转为json

在这里插入图片描述

const {expressjwt: expressJWT
} = require('express-jwt')//配置jwt转json对象的中间件
//只要配置成功了express-jwt这个中间件,就可以把解析出来的用户信息,挂载到req.user属性上
//可以在有token权限的接口去解析属性内容
app.use(expressJWT({secret: secretKey,algorithms: ["HS256"]
}).unless({path: ["/login"]
}))

视频里的是低版本,高版本的需要这样来设置

//具有token权限的接口,拿到token中的数据auth
app.get('/getinfo', (req, res) => {console.log(req.auth)res.send({status: 0,data: req.auth})
})

在这里插入图片描述这里的user变成了auth

//具有token权限的接口,拿到token中的数据auth
app.get('/getinfo', (req, res) => {console.log(req.auth)res.send({status: 0,data: req.auth})
})

在这里插入图片描述

捕获解析JWT失败后产生的错误

在这里插入图片描述

//全局错误中间件
app.use((err, req, res, next) => {if (err.name === 'UnauthorizedError') {return res.send({status: 401,message: "无效的token"})}res.send({status: 500,message: "未知错误"})
})

相关内容

热门资讯

阿联酋最大银行及另两家中东银行... 观点网讯:5月8日,路透社报道指,阿联酋最大银行第一阿布扎比银行(First Abu Dhabi B...
深圳239亿地王易主,再造万象... 2017年,世茂集团豪掷239.43亿元拿下世茂深港国际中心地块,曾规划建筑高度达700米的深圳第一...
蔚来在安庆成立新能源科技公司 ... 天眼查App显示,近日,安庆蔚来新能源科技有限公司成立,法定代表人为姚蒀,注册资本500万人民币,经...
美国牛肉商期盼峰会重启对华出口 据路透社5月8日报道,美国牛肉生产商正期待特朗普与中国于5月14日至15日的峰会推动对华出口许可恢复...
创业板首家未盈利企业,市值突破... 5月8日,大普微总市值正式突破2000亿元大关。截至午间收盘,大普微涨14.07%,报493.1元/...
招商证券:董事长霍达因工作变动... 招商证券公告,公司董事长霍达因工作变动申请辞去董事长、执行董事等全部职务,辞任自辞呈送达董事会之日生...
原创 中... 【阅读须知】本文所引用的所有信息和数据,均为作者通过查阅官方资料与网络公开数据整理、分析而成,旨在为...
原创 从... 2026年5月5日,中国商务部发布了一项具有划时代意义的专项阻断禁令,这份公告让一向倚仗长臂管辖的美...
布米普特拉北京投资基金管理有限... 美国圣路易斯联邦储备银行总裁穆萨莱姆周三发出明确信号,美联储货币政策面临的潜在风险正在发生关键转向。...
加工的秘密:超精加工设备如何做... 你知道吗? 一根头发丝的直径大约0.07毫米,也就是70微米。 超精加工设备,可切出表面,其尺寸为0...
招商证券董事长霍达因工作变动离... 北京商报讯(记者 刘宇阳 实习生 王思奕)5月8日,招商证券发布关于公司董事长离任暨推举董事代行董事...
华帝股份营收创近3年新低,37... 乐居财经李兰近日,华帝股份(002035.SZ)发布2025年年度报告。 2025年,华帝股份实现营...
大模型融资杀疯了!月之暗面狂揽... 图源:视觉中国 5月7日,据华峰资本官微消息,国内头部大模型公司月之暗面(Kimi)于近日完成新一轮...
扎根长宁二十余载,仲利国际融资... 作为总部扎根上海长宁的优质台资金融企业,仲利国际融资租赁有限公司深耕融资租赁行业二十余载,始终坚守金...
估值210亿!李彦宏又将收获一... 来源:直通IPO,文/王非 国产GPU上市潮仍然汹涌,继两家登陆A股、两家登陆H股后,这家公司正推进...
基金“盲盒”拆了 公募基金正在迎来一场让投资者“看得懂”的变革。 近日,华夏、易方达、南方、招商等12家头部及特色基金...
原创 2... 前言 十年间,中国企业在印尼镍产业链累计砸下超过140亿美元,电厂、公路、码头和全套生产线,硬生生...
原创 欧... 俄罗斯卫星通讯社5月6日报道,欧盟宣布禁止欧洲银行为含有来自不可靠供应商的关键部件的可再生能源项目提...
原创 余... 2026年5月2日,在中国理财市场扎根十三年的余额宝,终于触碰到了一个让所有人错愕的数字——7日年化...
银华基金增聘谭普景共同管理银华... 来源:新浪基金∞工作室 5月8日,银华基金管理股份有限公司发布公告称,为银华中证机器人交易型开放式指...