上篇文章,我们封装了ajax
方法来请求后端数据,这篇文章将介绍如何使用 Node.js
来连接 MySQL
,并对数据库进行操作。
实现效果
代码实现
- 后端接口处理
const express = require("express");
const connection = require("../data/index");
const router = express.Router();
const { proxy } = require("../utils");
const names = ["张三", "李四", "王五", "赵六"];
router.get("/", (req, res) => {
res.send("Hello World!");
});
router.post("/form", (req, res) => {
const { name, pwd } = req.body;
if (names.includes(name)) {
return res.json({
code: 1,
data: {
name: "该用户名已经注册啦",
pwd: "",
},
});
} else {
return res.json({
code: 0,
data: {
name: "可以注册啦",
pwd: "",
},
});
}
connection.end();
});
router.get("/song-list", async (req, res) => {
const sql = "select * from music_list";
try {
const data = await proxy(connection, sql);
return res.json({ code: 0, data });
} catch (error) {
return res.json({ code: 1, msg: "获取数据失败" });
}
connection.end();
});
module.exports = router;
mysql
连接初始化
var mysql = require("mysql");
var connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "123456",
database: "songdata",
});
module.exports = connection;
在node
中mysql
的查询是使用的函数回调,这样就把我们的查询数据业务和对数据操作的业务耦合在一起了,我们封装这个方法,进行查询操作和数据处理的解耦
function proxy(connection, sql) {
return new Promise((resolve, reject) => {
connection.query(sql, (err, results) => {
console.log("🚀 ~ connection.query ~ results:", results);
if (err) {
// console.log("🚀 ~ router.post ~ err", err);
reject(err);
} else {
resolve(results);
}
});
});
}
module.exports = { proxy };
- 在首页增补上
// 链接数据库
const connection = require("./data/index");
connection.connect();
mysql
数据库
- 温馨提示:最好是使用可视化工具来查看,工具很多,大家可以自行去找适合自己的工具
这样我们,就实现了前端通过ajax请求后端真实数据库的操作