server.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. Nodejs后端MySQL操作接口服务实例
  3. Version:1.0.0
  4. Author:shileiye
  5. Updated:2022.6.7
  6. 使用说明
  7. 1、安装依赖:npm install
  8. 2、运行命令:npm run dev
  9. 运行命令(效果与上面相同,不需重复执行):node .\server.js
  10. 3、访问地址:http://127.0.0.1:3000/api/index
  11. */
  12. var express = require("express"); // 导入express框架
  13. var mysql = require('mysql'); // 导入MYSQL操作库
  14. var app = express(); // 生成web服务实例
  15. app.use(express.json()); // 解析json请求
  16. app.use(express.urlencoded({ extended: false })); // 解析表单请求
  17. // 配置数据库连接
  18. const connection = mysql.createConnection({
  19. host: '127.0.0.1',
  20. user: 'root',
  21. password: 'root',
  22. database: 'demo'
  23. });
  24. // 连接数据库
  25. connection.connect(function (err) {
  26. if (err) throw err
  27. console.log('mysql 数据库连接成功')
  28. });
  29. // 查询数据接口
  30. app.get("/api/index",function(req, res){
  31. connection.query('select * from todos',
  32. function (error, results, fields) {
  33. if (error) throw error;
  34. res.send(JSON.stringify(results));
  35. console.log(JSON.stringify(results));
  36. });
  37. })
  38. /*
  39. 插入数据接口
  40. 说明:post方式提交body数据,raw填充json数据格式如下:
  41. {"name": "记录1","description": "记录 1 的描述"}
  42. */
  43. app.post("/api/index",function(req, res){
  44. //console.log(req.body);
  45. connection.query("INSERT INTO todos SET ? ", req.body,
  46. function (error, results, fields) {
  47. if (error) throw error;
  48. res.send(JSON.stringify("插入记录成功"));
  49. console.log("插入记录成功");
  50. });
  51. })
  52. /*
  53. 修改数据接口
  54. 说明:put方式提交body数据,raw填充json数据格式如下:
  55. {"name": "记录2","description": "记录 2 的描述","id": 1}
  56. */
  57. app.put("/api/index", function(req, res){
  58. //console.log(req.body);
  59. connection.query('UPDATE `todos` SET `name`=?,`description`=? where `id`=?',
  60. [req.body.name, req.body.description, req.body.id],
  61. function (error, results, fields) {
  62. if (error) throw error;
  63. res.send(JSON.stringify("更新记录成功"));
  64. console.log("更新记录成功");
  65. });
  66. })
  67. /*
  68. 删除数据接口
  69. 说明:delete方式提交body数据,raw填充json数据格式如下:
  70. {"id": 1}
  71. */
  72. app.delete("/api/index", function(req, res){
  73. //console.log(req.body);
  74. connection.query('DELETE FROM todos where id = ?', [req.body.id], (err, result) => {
  75. if (err) throw err;
  76. res.send(JSON.stringify("删除记录成功"));
  77. console.log(result);
  78. });
  79. })
  80. // 启动web服务,端口设置为3000
  81. app.listen(3000,function(){
  82. console.log("服务已启动,监听3000端口,查询接口访问地址:http://127.0.0.1:3000/api/index")
  83. })