使用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月以来,多地金融监管部门对部分中小银行、消金公司下达...
朱鸿接任陈航,担任钉钉科技有限... 消费日报-今朝新闻讯 天眼查显示,6月23日,钉钉科技有限公司发生工商变更,陈航卸任法定代表人、董事...
3日累跌超20%,德创环保:公... 6月25日, 德创环保(603177.SH)公告,公司股票于2026年6月23日、6月24日和6月2...
北京发布2026年第七轮拟供商... 央广网北京6月25日消息(记者门庭婷)6月25日,北京市规划和自然资源委员会网站发布了2026年第七...
开放麦 | 启明创投胡奇:从A... “2026年,创投圈的浪潮再次翻涌:AI从技术概念走进产业深水区,硬科技创业从“小众赛道” 变成“主...
腾讯孙忠怀:在行业转身处 6月24日,2026腾讯视频年度发布在上海举行。腾讯公司副总裁、腾讯在线视频董事长孙忠怀以《在行业转...
加息,突变!美联储,重磅传来!... 美联储政策路径突生变数。 美国商务部经济分析局最新公布的数据显示,5月个人消费支出(PCE)物价指数...
6月合肥上门收金必看!5步避坑... 2026年6月,合肥黄金市场持续高位运行,不少市民翻出家里闲置的旧金饰、投资金条想变现,上门回收因为...
潮汕女富豪挂帅后加码液冷!祥鑫... 潮汕女强人,带着百亿公司加码液冷散热。 6月24日晚间,祥鑫科技(002965.SZ)公告称,公司董...
马斯克向太空要电,GobiX ... 一场关于「去哪里找电」的全球竞赛,正在朝两个方向展开。 作者|周永亮 编辑| 郑玄 「太空光伏是不是...
原料药行业陷入周期低谷 有药企... 每经记者|许立波 每经编辑|魏文艺 “过完年到现在,我们整个团队每个月都在出差,跑遍了亚非拉、欧美市...
家门口筛查白内障!永顺泽家镇暖... 大众卫生报·新湖南客户端6月25日讯(通讯员 彭雪姣)为切实解决辖区老年性白内障患者异地就医奔波、就...
终于等到!油价马上再大跌,这个... 点击添加图片描述(最多60个字) 编辑 各位车主朋友,好消息接二连三! 继6月18日油价大幅下调...
丈量出海新路 世界酒庄影响力指... 长期以来,全球酒庄评价体系由西方机构主导,且大多局限于单一酒种、单一评价维度,这一局面正逐渐被打破。...
峰瑞资本创始合伙人李丰:从资本... “2026年,创投圈的浪潮再次翻涌:AI从技术概念走进产业深水区,硬科技创业从“小众赛道” 变成“主...
原创 A... 迈向成熟,还有茁壮成长的机会。 作者 | 方璐 编辑丨于婞 来源 | 野马财经 2026年6月21日...
为企业解锁出海新通道!亚太中小... 6月24日下午,作为2026年APEC中小企业工商论坛的重要组成部分,亚太中小企业国际化合作发展论坛...
君赛生物港股IPO,增聘兴证国... 跟丰宜科技一样,正冲刺港股IPO的上海君赛生物股份有限公司(简称“君赛生物”)增聘一位整体协调人。 ...
圣邦股份明日上市:暗盘涨24%... 雷递网 雷建平 6月25日 圣邦微电子(北京)股份有限公司(简称:“圣邦股份”,股票代码:“0366...
科技“吃肉”,券商跟着“喝汤”... 当科技持续成为市场核心主线,押中硬科技项目的券商也成为被追逐的焦点。 6月24日,半导体零部件概念股...