网站首页 > 开源技术 正文
点击右上方红色按钮关注“web秀”,让你真正秀起来
前言
万丈高楼平地起,我们的Todo List项目也是越来越健壮了。Todo List的前面4章内容都是在为Client端开发,现在架构基本ok,接下来我们搭建Server端,连接数据库,Client端能与数据库交互。
以下知识和前端知识无关哦,虽然也是JS代码,有兴趣的可以继续了解一波。当然,现在开发同学多多少少还是要会一点点全栈类的知识,这也是一种趋势。
代码请戳:github搜索 /javanf/todo-list
本次《todo list: Vue待办事项任务管理》,分为一下章节,有兴趣的同学可以持续关注。
第一章: 初识(项目搭建、基本功能组件实现)
第二章: 数据动态化处理(localStorage + Vuex),可新增,可编辑
第三章:待办事项自定义分组
第四章:待办事项添加描述图片等信息
第五章:Node + Express 搭建服务端连接Mysql
第六章:Client端与Server端交互,待办任务入库等
第七章:多人协同处理待办事项,权限管理
第八章:完结:线上发布
初步定义7个章节,实际开发中有可能有所增减。
安装模块
如标题所见,我们是Node + Express 搭建服务端连接Mysql,所以需要安装2个模块, express和mysql。
npm i express mysql -S
目录结构
根目录新建server文件夹,并在下面建3个文件,app.js(入口文件),pool.js(mysql数据库连接池), sql.js(sql语句)。
pool.js
/** * @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
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
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工具模拟一下请求,请看下列数据:
调用update接口后的数据库数据:
总结
本章节之前发布了一节视频,文章发布与视频之后,所以做出了很多优化的地方。对文字不是很感冒的,可以去看看视频。同时与之(《todo list: Vue待办事项任务管理》)相关的视频专辑也已经发出。
代码请戳:github搜索 /javanf/todo-list
喜欢小编或者觉得小编文章对你有帮助的,可以点击一波关注哦!
猜你喜欢
- 2024-10-22 调用 Express API时出现奇怪的CORS错误怎么办?
- 2024-10-22 详解如何从零开始搭建Express+Vue开发环境
- 2024-10-22 从零开始学习nodejs+express--交互环境
- 2024-10-22 express开发(一)简介与搭建(express创建项目)
- 2024-10-22 express中间件原理connect(express和koa中间件原理的区别)
- 2024-10-22 蓝易云 - centos系统直接部署express教程。
- 2024-10-22 我为 Express 开了外挂(cad中的express怎么显示为中文)
- 2024-10-22 七爪源码:让我们 Dockerize 一个 Node.js Express 应用程序
- 2024-10-22 Node实战篇:Express--jade模板引擎(七)
- 2024-10-22 深入全面讲解Express的Cookies:原理解析与代码示例
你 发表评论:
欢迎- 03-19基于layui+springcloud的企业级微服务框架
- 03-19开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- 03-19SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- 03-19SpringBoot+LayUI后台管理系统开发脚手架
- 03-19layui下拉菜单form.render局部刷新方法亲测有效
- 03-19Layui 遇到的坑(记录贴)(layui chm)
- 03-19基于ASP.NET MVC + Layui的通用后台开发框架
- 03-19LayUi自定义模块的定义与使用(layui自定义表格)
- 最近发表
-
- 基于layui+springcloud的企业级微服务框架
- 开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- SpringBoot+LayUI后台管理系统开发脚手架
- layui下拉菜单form.render局部刷新方法亲测有效
- Layui 遇到的坑(记录贴)(layui chm)
- 基于ASP.NET MVC + Layui的通用后台开发框架
- LayUi自定义模块的定义与使用(layui自定义表格)
- Layui 2.9.11正式发布(layui2.6)
- Layui 2.9.13正式发布(layui2.6)
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)