使用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: "未知错误"})
})

相关内容

热门资讯

银行职工因贪污罪获刑后留任,在... 新京报记者 刘锦涵 制作 礼牧周 ▲新京报我们视频出品(ID:wevideo) 近日,农发行福建福鼎...
黄金创40年来最大单日跌幅!金... (来源:劳动报) 转自:劳动报 1月31日,国际金银价格同步大跌,创40余年来最大跌幅。国内金饰价...
“一人公司”近来何以兴起? 2026年开年,“一人公司”发展备受关注。这种新型创业模式正在上海、北京、江苏等地悄然兴起,凭借低成...
寒武纪预计 2025 年净利润... 消息,AI 芯片企业寒武纪今日发布 2025 年年度业绩预告: 经财务部门初步测算,公司预计 2...
和讯投顾徐剑波:ETF买入法! 这轮牛市是机构主导的ETF牛市,选对ETF往往比选股更加赚钱。那么如何投资ETF?今天教给大家一个非...
君乐宝上市申请已递交,国内乳品... 2026年 1月19日,中国领先的综合乳制品企业君乐宝乳业集团股份有限公司正式向香港联交所递交主板上...
大涨!马斯克,突传大消息!重磅... SpaceX的“赚钱能力”曝光。 据最新消息,世界首富埃隆·马斯克旗下的商业航天公司SpaceX去年...
原创 顶... 2025年微博之夜定档于2026年2月5日北京线上直播,这场已经走过二十多年风雨的互联网年度盛典,因...
体检查出肺结节?3个日常行为正... 太原龙城中医医院科普:如今越来越多人在体检中发现肺结节,看到报告上的“阴影”便忧心忡忡。其实研究表明...
记者观察丨美联储下任主席提名揭... 在经过长达一年反复挑选后,美国总统唐纳德·特朗普终于做出决定,提名凯文·沃什为下一任美联储主席,接替...
首饰金,一夜大跌上百元!金价暴... 【导读】多家首饰品牌金价出现大幅下跌 中国基金报记者 忆山 随着国际金价急速下跌,国内首饰金价也迎来...
原创 一... 一个亲自参观过我国稀土提炼工厂的日本人在社交平台发文,竟然毫不客气地指出,无论是日本还是美国,都几乎...
环球网财经系列专访 1月27日至28日,全国贸促工作会议暨中国贸促会第六届全国委员会第六次会议在京召开。 会议指出,“...
默茨警告:“大国世界”要来了,... 【文/观察者网 熊超然】当地时间1月29日,德国总理默茨在德国联邦议院发表其任内的第二次施政声明。在...
路透解析“马斯克集团”:Spa... SpaceX 凤凰网科技讯 北京时间1月31日,据路透社报道,长期以来,埃隆·马斯克(Elon Mu...
启动“二改” 永辉在京完成21... 北京商报讯(记者 赵述评 实习记者 毛思怡)1月31日,永辉超市北京龙湖长楹天街店经一个多月闭店调改...
《宜宾散装白酒连锁经营规范》团... 近日,由宜宾市酒类协会牵头归口、宜宾安宁酒厂主导起草,四川谊宾酒业、宜宾学院、劲牌南溪酒业等多家本地...
印度牙医博士打造全印首款人形机... 2026 年 1 月 23 日,印度浦那的 Muks Robotics 正式宣布,自主研发的社交人形...
金银价创新高,引发全球“贵金属... 【环球时报记者 倪浩 环球时报特约记者 甄翔】连日来,国际市场金银价格持续大涨。1月29日当天,亚太...
财经观察丨“爱你老己”背后的消... 新华网北京1月31日电岁末年初,一句“爱你老己,明天见”席卷社交网络,成为年轻人自我关怀的新表达。热...