1.安装库

  1. npm install mysql

2.编写db.js(用作公共模块)

  1. //连接MySQL数据库
  2. var mysql = require("mysql");
  3.  
  4. var pool = mysql.createPool({
  5. host:"127.0.0.1",
  6. user:"root",
  7. password:"123456",
  8. database:"wordpress",
  9. port:3306
  10. });
  11.  
  12. function query(sql,callback){
  13. pool.getConnection(function(err,connection){
  14. connection.query(sql, function (err,rows) {
  15. callback(err,rows);
  16. connection.release();
  17. });
  18. });
  19. }
  20.  
  21. exports.query = query;

3.编写user.js(与数据库交互并对外开放接口)

顺便说下req.params、req.body、req.query的应用

req.body通常用于解析post请求数据

req.query通常用于解析get请求数据,如http://wwww.youcongtech.com/blog/user?username=youcong

req.params通常用于解析rest请求方式,如http://www.youcongtech.com/blog/user/youcong

  1. var express = require('express');
  2. var router = express.Router();
  3. var URL = require('url');
  4. var db = require('./db');
  5. var jsonData = require('./jsonData');
  6. var bodyParser = require('body-parser');
  7.  
  8. //定义一个post输出接口
  9. router.post('/post', function(req, res) {
  10.  
  11. var obj = {
  12. a: 1,
  13. b: 2
  14. };
  15.  
  16. res.json(obj); //以json格式输出
  17. });
  18.  
  19. //增删改查
  20.  
  21. //查询所有信息
  22. router.get('/queryAll', function(req, res, next) {
  23.  
  24. var userLogin = req.userLogin
  25.  
  26. var querySql = 'SELECT * FROM wp_users';
  27.  
  28. db.query(querySql,function (err, rows) {
  29.  
  30. if(err){
  31. console.log('[SELECT ERROR] - ',err.message);
  32. return;
  33. }
  34.  
  35. //把搜索值输出
  36. res.send(rows);
  37. console.log('The solution is: ', rows[0].ID);
  38.  
  39. });
  40.  
  41. });
  42.  
  43. //添加用户信息
  44. router.post("/add",function(req,res){
  45. var params = URL.parse(req.url, true).query;
  46.  
  47. var addSql = "INSERT INTO wp_users (user_login) VALUES('"+params.userLogin+"')";
  48.  
  49. var addSqlParams = [params.userLogin];
  50.  
  51. db.query(addSql,function(err,rows){
  52. if(err){
  53. res.send("添加失败 " + err);
  54. }else {
  55. res.send(jsonData.addInfo);
  56. }
  57. });
  58.  
  59. });
  60.  
  61. //更新用户信息
  62. router.put("/update",function(req,res,next){
  63.  
  64. var params = URL.parse(req.url, true).query;
  65.  
  66. var displayName = params.displayName;
  67.  
  68. var id = params.id;
  69.  
  70. var sql = "update wp_users set display_name = '"+ displayName +"' where ID = " + id;
  71.  
  72. db.query(sql,function(err,rows){
  73. if(err){
  74. res.send("修改失败 " + err);
  75. }else {
  76. res.send(jsonData.updateInfo);
  77. }
  78. });
  79.  
  80. });
  81.  
  82. //根据ID获取用户信息
  83. router.get("/getById/:id",function(req,res){
  84.  
  85. var id = req.params.id;
  86.  
  87. var sql = 'select * from wp_users where ID = '+id;
  88.  
  89. db.query(sql,function (err, result) {
  90.  
  91. if(err){
  92. console.log('[SELECT ERROR] - ',err.message);
  93. return;
  94. }
  95.  
  96. console.log(result);
  97. res.send(result);
  98.  
  99. });
  100.  
  101. });
  102.  
  103. //删除用户信息
  104. router.delete('/delete/:id', function(req, res, next) {
  105.  
  106. var id = req.params.id;
  107.  
  108. var delSql = 'delete from wp_users where id = '+id;
  109.  
  110. db.query(delSql,function (err, result) {
  111.  
  112. if(err){
  113. console.log('[INSERT ERROR] - ',err.message);
  114. return;
  115. }
  116. res.send(jsonData.deleteInfo);
  117.  
  118. });
  119. });
  120.  
  121. module.exports = router;

4.不要忘记在app.js配置路由

  1. var usersRouter = require('./routes/users');
  2.  
  3. app.use('/users', usersRouter);

参考资料如下:
node.js取参四种方法req.body,req.params,req.param,req.body:https://www.cnblogs.com/jkingdom/p/8065202.html

Node.js之mysql增删改查的更多相关文章

  1. node.js封装数据库增删改查

    数据库增删改查的封装 小编不容易 const sql = { insert: function (Collection, insertData) { return new Promise((resol ...

  2. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重

    MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...

  3. PHP MySql增删改查

    mysql_connect()连接数据库 mysql_select_db选择数据库 mysql_fetch_assoc()获取结果集 mysql_query()执行sql语句 实例如下: <?p ...

  4. mysql增删改查练习

    Mysql增删改查sql语句练习 关于数据库的一些操作: 进入mysql 命令行: mysql -uroot –p 查看所有数据库: show databases; 创建数据库: create dat ...

  5. Django学习之mysql增删改查

    上节介绍了如何使用命令行操作mysql增删改查,现在介绍如何使用python管理mysql 使用pip 下载完mysql后,mysql会以pymysql模块的形式存储在pycharm的包文件里.我们通 ...

  6. js操作indexedDB增删改查示例

    js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var r ...

  7. mysql增删改查相关操作

    mysql增删改查相关操作 以前用mysql用的少,对于数据库相关的操作不熟悉,现在开始要接触数据库了,记录一下相关的基础操作吧. 1.数据库的授权操作 # mysql -u root -p Ente ...

  8. 基于gin的golang web开发:mysql增删改查

    Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get git ...

  9. MySQL增删改查的常用语句汇总

    MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...

随机推荐

  1. 14.Odoo产品分析 (二) – 商业板块(7) –制造(1)

    查看Odoo产品分析系列--目录 一旦你收到了库存中所需的原材料,就可以开始生产终端产品了.ERP系统的部分功能是帮助您根据可用资源调度这些订单.其中一项资源是原产品.其他资源可以包括可用劳动力或特定 ...

  2. Android样式主题及自定义属性

    一.Selector——图形.颜色选择器 语法 <selector>   <item android:drawable=“drawableResA” android:state_xx ...

  3. WannaCry勒索比特币蠕虫病毒解决方案

    WannaCry ransomware used in widespread attacks all over the world Customer Guidance for WannaCrypt a ...

  4. 使用混淆ProGuard压缩代码和资源/减少方法数量

    ProGuard介绍 ProGuard是一个Java类文件压缩器,优化器,混淆器和预先文件验证器. 压缩步骤检测和删除未使用的类,字段,方法和属性. 优化步骤分析和优化方法的字节码. 混淆步骤使用短无 ...

  5. 章节七、3-ArrayList和LinkedList对比

    一.创建集合并添加元素(从末尾位置添加) package ZangJie7; import java.util.ArrayList; import java.util.LinkedList; impo ...

  6. AlexNet卷积神经网络【前向反馈】

    1.代码实现 # -*- coding: utf-8 -*- """ Created on Wed Nov 14 17:13:05 2018 @author: zhen ...

  7. 下载安装Emacs和基本配置--待更新中

    Emacs下载地址 下载好后,解压到D:\Emacs,并设置环境变量D:\Emacs\bin 熟悉基本操作 光标的移动 文件的创建与打开

  8. java 一个实例

     this 代替

  9. Python3中操作字符串str必须记住的几个方法

    几个Python的字符串常用内建函数 1.方法:Python3 isdigit()方法 描述:Python isdigit() 方法检测字符串是否只由数字组成. 语法:str.isdigit() 参数 ...

  10. AI学习---数据IO操作&神经网络基础

    数据IO操作 TF支持3种文件读取:    1.直接把数据保存到变量中    2.占位符配合feed_dict使用    3. QueueRunner(TF中特有的) 文件读取流程 文件读取流程(多线 ...