一、开发环境的安装
确保本机安装了Node、Mysql数据库、数据库客户端工具Navicat。具体如何安装本文不在详细介绍,大家可以百度或者搜索掘金网的过往文章进行查询。
看本篇之前,大家可以参考过往掘金网的一篇文章:用Node+express搭建前后端项目实战讲解
二、Node中安装第三方库
1、使用express
执行命令:npm install express
2、使用Mysql
执行命令:npm install mysql
3、在目录下文件夹里创建一个db.js文件,内容如下:
// 引入mysql
const mysql = require("mysql");
// 建立一个连接池
const db = mysql.createPool({
host: "192.168.64.11", // 数据库的IP地址(本地的或者是云服务器的都可以)
user: "root",
password: "wlx@123",
database: "nodetest", //指定要操作哪个数据库
});
// 检测数据库是否连接成功
db.query("select 1", (err, results) => {
if (err) return console.log(err);
console.log(results);
});
module.exports = db
4、在目录文件夹下创建app.js文件,作为主文件。代码如下:
const express = require('express')
const bodyParser = require('body-parser');
const compression = require('compression');
const path = require('path')
// 引入Mysql
const db = require("./db");
// 创建 express 应用
const app = express()
app.use(express.json()); // 解析 JSON 格式的请求体数据
app.use(express.urlencoded({ extended: true })); // 解析 URL 编码格式的请求体数据
// 使用body-parser中间件解析JSON请求体
app.use(bodyParser.json());
// 使用compression中间件压缩响应数据
app.use(compression());
// 设置静态文件目录
app.use(express.static(path.join(__dirname, 'public')));
// 监听 / 路径的 get 请求
app.get('/', function(req, res) {
res.send('hello node')
})
// 查
app.get("/listSurvey", (req, res) => {
// 定义sql语句
const sql = "select * from survey";
// 执行sql语句
db.query(sql, (err, result) => {
// 执行失败
if (err) {
return res.send({ state: 1, message: err });
}
return res.send({ state: 0, message: "查询成功", data: result });
});
});
// 增
app.post("/saveSurvey", (req,res)=>{
// 先取到要增加的字段值
const addInfor = req.body
// 定义sql语句
const sql = "insert into survey set ?"
// 执行sql语句,第二个参数代表sql语句中?的值
/**
* 如果增加的字段和数据库中的字段不是一一对应的
*/
db.query(sql, addInfor, (err,results)=>{
// sql语句执行失败
if(err) {
return res.send({status: 1, message: err.message})
}
// 数据库语句执行成功,但影响的条数不等于1,没有增加,也属于失败
if(results.affectedRows !== 1) {
return res.send({status: 1, message: '数据添加失败'})
}
// sql语句执行成功,影响条数也等于1
return res.send({status:0, message: '添加成功', data:results})
})
})
// 改
app.get("/update", (req, res) => {
// 修改语句,将survey表中name为?的年龄改为?,两个问号的值从前端获取
const sql = "update survey set name=? where id=?";
// 执行sql语句
db.query(sql, [req.body.name, req.body.id], (err, results) => {
// sql语句执行失败
if (err) {
return res.send({ status: 1, message: err.message });
}
// sql语句执行成功,但影响的条数不等于1,没有修改,也属于失败
if (results.affectedRows !== 1) {
return res.send({ status: 1, message: "数据修改失败" });
}
// 执行成功
return res.send({ status: 0, message: "修改成功", data: results });
});
});
// 删
app.get("/delete", (req, res) => {
// 定义sql语句,从user_infor表中将id为?的那条数据删除
const sql = "delete from survey where id=?";
db.query(sql, req.body.id, (err, results) => {
// sql语句执行失败
if (err) {
return res.send({ status: 1, message: err.message });
}
// sql语句执行成功,但影响的条数不等于1,没有删除,也属于失败
if (results.affectedRows !== 1) {
return res.send({ status: 1, message: "删除失败" });
}
// 执行成功
return res.send({ status: 0, message: "删除成功", data: results });
});
});
// 使 express 监听 5000 端口号发起的 http 请求
const server = app.listen(5000, function() {
console.log("服务器已启动,监听5000端口");
})
然后,执行node app.js,运行程序。如果运行过程中发现问题,缺少xxx库之类,用npm install xxx就可以解决。
运行后效果截图如下:
全部评论