server.js 2.9 KB

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