Express+MySQL实现增删查改
现在Node后台开发在网上找到的资料基本都是用的MongoDB
数据库,不太容易找到使用MySQL
数据库的资料,所以我整理了一下这篇文章,将会讲解如何使用Express和MySQL来实现CRUD
环境搭建
生成器
可以直接使用Express生成器自动生成Express工程
$ npm install -g express-generator
$ express --view=ejs myapp
手动搭建
创建一个项目目录
$ npm init
- 新建app.js入口文件
- 新建router.js路由文件
- 创建views文件夹,存放EJS模板文件(student.ejs, editStu.ejs)
- 新建public公共资源
views文件夹命名不可以是别的,会报错
安装第三方模块
$ npm install express --save
$ npm install mysql --save
$ npm install ejs --save
编写代码
编写入口文件
实例化、模板引擎设置、静态资源、监听
const express = require('express');
const app = express();
const stuRoute = require('/router')
// 设置模板引擎
app.set("view engine", "ejs");
// 加载静态资源
app.use(express.static('public'));
// 使用路由
app.use(stuRoute);
// 监听
app.listen(3001, () => {
console.log('启动成功');
})
编写路由文件
const express = require('express');
const route = express.Router();
const mysql = require('mysql');
// 配置数据库,连接池模式
var pool = mysql.createPool({
connectionLimit: 10, // 连接数量
host: 'localhost', // 地址
user: 'liuhao', // 数据库用户名
password: '123456', // 数据可密码
database: 'ssmbuild' // 数据库名
});
route.get('/student', (req, res) => {
console.log("/student:", req.query);
const sql = 'select * from books where bookName = ?';
let params = ['java'];
// 根据条件查询信息
pool.getConnection(function (err, connection) {
if (err) throw err; // not connected!
connection.query(sql, params, function (error, results, fields) {
connection.release();
console.log(results);
// 将数据传到ejs渲染
res.render('student', {
res: []
})
if (error) throw error;
});
});
})
module.exports = route;
效果展示
查询结果
数据库数据
这里可以看到数据已经查询成功
本篇主要讲解mysql模块使用,对数据渲染不再赘述
另外修改删除修改一下sql语句和params参数即可,开发时数据库部分一般会单独作为一个模块进行封装
现在大部分开发一般是返回json数据,后期会再进行记录