NodeJs 实现小程序历史数据接口
两种 HTTP 请求方法:GET 和 POST 介绍
点击查看 GET 和 POST 请求方法介绍
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
- GET- 从指定的资源请求数据。
- POST- 向指定的资源提交要被处理的数据。
GET 提交参数一般显示在 URL 上,POST 通过表单提交不会显示在 URL 上,POST 更具隐蔽性
思路和获取接口参数
从前端传参获取需要的数据 -> 再拼接 SQL 语句来执行 → 再返回结果给前端
获取 get 请求的参数 let { 参数名 , 参数名 } = req.query
获取 post 请求的参数 let { 参数名 , 参数名 } = req.body;
这里的参数名一定要传过来 不然获取的值将是 undefined
数据记录增删改查路由实现
增加数据记录接口
js
/* 新增 */
router.post("/api/add_record", function (req, res, next) {
// 从请求体中获取 sensor_name 和 sensor_value 的值
let { sensor_name, sensor_value } = req.body;
// 拼接 sql 语句
let sqlStr = `INSERT INTO esp32_data (sensor_name,sensor_value) VALUES ('${sensor_name}', ${sensor_value});`;
// 在控制台打印需要执行的 sql 语句
console.log(sqlStr);
// 执行sql语句 通过connection.query方法
connection.query(sqlStr, (err, result, fields) => {
if (!err) {
// 如果没有错误,返回添加成功的信息
res.json({ code: 200, msg: "添加成功" });
return;
}
// 如果有错误,返回添加失败的信息
res.json({ code: 404, msg: "添加失败" });
});
});
删除数据记录接口
js
/* 删除 */
router.post("/api/del_record", function (req, res, next) {
let { id } = req.body;
let sqlStr = `DELETE FROM esp32_data WHERE id = ${id}`;
console.log(sqlStr);
connection.query(sqlStr, (err, result, fields) => {
if (!err) {
res.json({ code: 200, msg: "删除成功" });
return;
}
res.json({ code: 404, msg: "删除失败" });
});
});
修改数据记录接口
js
/* 修改 */
router.post("/api/update_record", function (req, res, next) {
let { id, sensor_value } = req.body;
let sqlStr = `UPDATE esp32_data SET sensor_value = ${sensor_value} WHERE id = ${id};`;
console.log(sqlStr);
connection.query(sqlStr, (err, result, fields) => {
if (!err) {
res.json({ code: 200, msg: "修改成功" });
return;
}
res.json({ code: 404, msg: "修改失败" });
});
});
查询数据记录接口
js
/* 查询 */
router.get("/api/get_records", function (req, res, next) {
let { sensor_name, create_time } = req.query;
let sqlStr = `SELECT * FROM esp32_data WHERE sensor_name = '${sensor_name}' AND DATE(create_time) = '${create_time}'`;
console.log(sqlStr);
// http://localhost:3000/api/get_records?sensor_name=SMOKE&create_time=2024-02-28
connection.query(sqlStr, (err, result, fields) => {
if (!err) {
console.log("查询结果:" + result.length + "条");
// 对查询结果进行处理
let resultData = result.map(item => {
return {
...item,
create_time: handleData(item.create_time), // 调用工具函数处理时间
update_time: handleData(item.update_time),
};
});
res.json({ code: 200, msg: "查询成功", data: resultData });
return;
}
res.json({ code: 404, msg: "查询失败" });
});
});