express + mysql实践
2021/6/19 2:29:11
本文主要是介绍express + mysql实践,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文基于已搭建好 express 项目并且已经安装MySql环境
本文查看MySql用 navicat
express 项目安装mysql依赖:npm i mysql --save
routes 文件夹就是专门存放路由,每个单独文件就是一个路由模块 routes 文件夹创建个 student.js 文件填入以下内容:
let express = require('express') let router = express.Router() let mysql = require('mysql') // 创建数据库链接(参数不用说了见名知意) let conn = mysql.createConnection({ host: 'localhost', user: 'root', password: '密码', port: '3306', database: 'test2' // 链接指定数据库 }) // 在这里写接口 module.exports = router
app.js引入student.js 文件
查询: 查看表内容
student.js 文件增加以下内容:查询student表
router.get("/query", (req, res, next) => { conn.connect(); // 创建sql链接 const sql = "select * from student"; // sql语句 conn.query(sql, (err, result) => { if (err) { res.json({ code: 500, msg: "SQL执行错误", err }) } else { res.json({ code: 200, msg: "查询成功", data: result // 查询结果 }) } conn.destroy(); // 关闭sql链接 }) })
重启express 项目,然后前端ajax调用接口(直接用jq省事):
$.ajax({ type: "get", url: "http://localhost:3000/student/query", success: function (res) { console.log(res); }, error: function (err) { console.log(err); }, });
student.js 文件增加以下内容:根据条件(名称)查询student表
// 查询-根据条件(名称) router.get("/query2", (req, res, next) => { console.log('前端get请求参数:', req.query); conn.connect(); const sql = "select * from student where name=?"; // 执行查询语句 const sqlParams = [req.query.name] // 条件 conn.query(sql, sqlParams, (err, result) => { if (err) { res.json({ code: 500, msg: "SQL执行错误", err }) } else { res.json({ code: 200, msg: "查询成功", data: result }) } conn.destroy(); }) })
重启express 项目,然后前端ajax调用接口:
$.ajax({ type: "get", url: "http://localhost:3000/student/query2", data: { name: "Anne" }, success: function (res) { console.log(res); }, error: function (err) { console.log(err); }, });
增加: 增加需要用post请求获取前端传参,而express post请求获取参数需要安装依赖body-parser依赖 安装依赖:npm i body-parser 在 app.js 里面引入并添加解析
先看表结构
student.js 文件增加以下内容:student表增加人员
router.post("/add", (req, res, next) => { console.log('前端post请求参数:', req.body); conn.connect(); const sql = "insert into student(name,age,sex) values(?,?,?)" //SQL语句 const sqlParams = [req.body.name, req.body.age, req.body.sex] // 动态参数 conn.query(sql, sqlParams, (err, result) => { if (err) { res.json({ code: 500, msg: "SQL执行错误", err }) } else { res.json({ code: 200, msg: "增加成功", data: result }) } conn.destroy(); }) })
重启express 项目,然后前端ajax调用接口:
$.ajax({ type: "post", url: "http://localhost:3000/student/add", data: { name: "Lili", age: "15", sex: "0" }, success: function (res) { console.log(res); }, error: function (err) { console.log(err); }, });
到navicat查看数据库的student表多了刚才增加的数据
编辑
router.put("/edit/:id", (req, res, next) => { const id = req.params.id; console.log('前端put请求id:', id); console.log('前端put请求参数:', req.body); conn.connect(); const sql = "update student set name=?,age=?,sex=? where id=?" //SQL语句 const sqlParams = [req.body.name, req.body.age, req.body.sex, id] // 动态参数 conn.query(sql, sqlParams, (err, result) => { if (err) { res.json({ code: 500, msg: "SQL执行错误", err }) } else { res.json({ code: 200, msg: "编辑成功", data: result }) } conn.destroy(); }) })
重启express 项目,然后前端ajax调用接口:
$.ajax({ type: "put", url: "http://localhost:3000/student/edit/" + 4, data: { name: "Lili", age: "25", sex: "2" }, success: function (res) { console.log(res); }, error: function (err) { console.log(err); }, });
到navicat查看数据库的student表id为4的数据有变化
删除
router.delete("/delete/:id", (req, res, next) => { const id = req.params.id; console.log('前端delete请求id:', id); conn.connect(); const sql = "delete from student where id=?" //SQL语句 const sqlParams = [id] // 动态参数 conn.query(sql, sqlParams, (err, result) => { if (err) { res.json({ code: 500, msg: "SQL执行错误", err }) } else { res.json({ code: 200, msg: "删除成功", data: result }) } conn.destroy(); }) })
重启express 项目,然后前端ajax调用接口:
$.ajax({ type: "delete", url: "http://localhost:3000/student/delete/" + 4, success: function (res) { console.log(res); }, error: function (err) { console.log(err); }, });
这篇关于express + mysql实践的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享