前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Todo List: Node + Express 搭建服务端连接Mysql – 第五章(第一节)

Todo List: Node + Express 搭建服务端连接Mysql – 第五章(第一节)

作者头像
Javanx
发布2019-09-04 11:19:11
8860
发布2019-09-04 11:19:11
举报
文章被收录于专栏:web秀web秀

前言

万丈高楼平地起,我们的Todo List项目也是越来越健壮了。Todo List的前面4章内容都是在为Client端开发,现在架构基本ok,接下来我们搭建Server端,连接数据库,Client端能与数据库交互。

Todo List: Node + Express 搭建服务端连接Mysql - 第五章(第一节)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(第一节)

以下知识和前端知识无关哦,虽然也是JS代码,有兴趣的可以继续了解一波。当然,现在开发同学多多少少还是要会一点点全栈类的知识,这也是一种趋势。

代码请戳:Todo List GitHub代码库

Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)

安装模块

如标题所见,我们是Node + Express 搭建服务端连接Mysql,所以需要安装2个模块, expressmysql

代码语言:javascript
复制
npm i express mysql -S
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(第一节)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(第一节)

Server端

Todo List: 待办事项添加描述图片等信息(file转base64存储) - 第四章
Todo List: 待办事项添加描述图片等信息(file转base64存储) - 第四章

根目录新建server文件夹,并在下面建3个文件,app.js(入口文件),pool.js(mysql数据库连接池), sql.js(sql语句)。

pool.js

代码语言:javascript
复制
/**
* @module mysql数据库连接池
* @author: Javanx <www.javanx.cn>
* @date: 2019-06-05 14:17:51
*/

var mysql = require('mysql')

var pool = mysql.createPool({
    host: '127.0.0.1', // 数据库地址
    port: '3306', // 端口
    user: 'root', // 用户名称
    password: 'root', // 用户密码
    database: 'todo-list' // 要链接的数据库名称
});

// 查询相关
let query = (sql, callback) => {    
  pool.getConnection((err,conn) => {    
      if(err){
          callback(err,null,null);    
      }else{    
          conn.query(sql, (qerr,vals,fields) => {    
              //释放连接    
              conn.release();    
              //事件驱动回调    
              callback(qerr, vals, fields);    
          });    
      }    
  })  
}

module.exports = query // 暴露出这个接口

用数据库连接池的好处是: 1、资源重用(避免频繁的创建、释放连接引起的大量性能开销) 2、更快的响应速度(利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间)

app.js

代码语言:javascript
复制
var express = require('express') // 引入express模块

var query = require('./pool') // 引入数据库连接池文件
var sql = require('./sql') // sql语句文件

var app = express() // 创建express的实例

// get请求
app.get('/get-task-list', (req, res) => {
  query(sql.SELECT_TODOLIST_TABLE, (err, result, fields) => {
    if (err) {
      console.log('[SELECT ERROR]:', err.message)
    }
    res.send(result) // 服务器响应请求
  })
})

// post请求
app.post('/update-task-list', (req, res) => {
  query(sql.UPDATE_TODOLIST_TABLE, (err, result, fields) => {
    if (err) {
      console.log('[SELECT ERROR]:', err.message)
    }
    res.send(result)
  })
})

// 监听端口
app.listen(3000, () => {
  console.log('Server running at 3000 port')
})

启动服务,并且暴露2个接口,获取和修改task_list表的数据。

sql.js

代码语言:javascript
复制
module.exports = {
  SELECT_TODOLIST_TABLE: 'SELECT * FROM TASK_LIST',
  UPDATE_TODOLIST_TABLE: 'UPDATE TASK_LIST SET TITLE = "任务1" WHERE ID = 1',
}

这里2个sql语句,一个是查询task_list表,一个是修改task_list表id为1的title值,与上面的接口对应。

这里用postMan工具模拟一下请求,请看下列数据:

Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)

调用update接口后的数据库数据:

Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)
Todo List: Node + Express 搭建服务端连接Mysql - 第五章(1)

代码请戳:Todo List GitHub代码库

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年6月5日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装模块
  • Server端
    • pool.js
      • app.js
      • sql.js
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档