1、安装 mysql 模块
首先,我们需要使用nodejs的包管理工具(npm)安装mysql的驱动。命令行如下:
npm install mysql
2、配置数据库连接参数
在当前文件夹里创建config,在该文件夹下新建一个dbconfig.js,用来连接数据库
const Sequelize=require('sequelize');
const DB=new Sequelize('dbtest','root','123456',{
host:'localhost',
port:3306,
dialect:'mysql',
pool:{
max:30,
min:3,
idle:1000,
}
})
module.exports=DB;
3、创建路由模块
在数据库中有这样一张表employees
(1)新建一个EmployeeModel.js 文件,并导出该文件
const Sequelize=require('sequelize');
const DB=require('../config/dbconfig')
const EmployeeModel=DB.define('employees',{
id:{
type:Sequelize.INTEGER,
primaryKey:true,
autoIncrement:true
},
name:{
type:Sequelize.STRING,
allowNull:false
},
gender:{
type:Sequelize.STRING,
allowNull:false
},
birthday:{
type:Sequelize.DATE,
allowNull:false
},
phone:{
type:Sequelize.STRING,
allowNull:true
},address:{
type:Sequelize.STRING,
allowNull:true
}
},{
freezeTableName:true,
timestamps:false // 不显示时间戳
})
module.exports=EmployeeModel;
(2) 再新建一个employeeapi.js 文件,导入express、router、EmployeeModel模块;并导出;
var express = require('express');
var router = express.Router();
const Employee=require('../../db/model/EmployeeModel')
module.exports = router;
(3)在app.js文件引入路由模块
var employeeRouter=require('./routes/api/employeeapi')
app.use('/employees',employeeRouter)
如果不在app.js 文件中引入,则无法在postman中测试。
4、查询该表
/*
查询所有: http://localhost:8089/employees/all
*/
router.get('/all',(req,res)=>{
Employee.findAll({
raw:true //不需要显示额外信息
}).then(result=>{
res.json({
code:1000,
data:result
})
}).catch(err=>{
console.log(err)
})
})
启动服务器, 在postman 中输入查询的地址,选为get请求,输入链接,点击发送。??http://localhost:8089/employees/all??
?查询成功
?5、增加数据
/*
2、增加 http://localhost:8089/employees/add
*/
router.post('/add',(req,res)=>{
Employee.create({
name:req.body.name,
gender:req.body.gender,
birthday:req.body.birthday,
phone:req.body.phone,
address:req.body.address,
}).then(result=>{
res.json({
code:1001,
msg:'Success'
})
}).catch(err=>{
console.log(err)
})
})
启动服务器, 在postman 中输入查询的地址,选为post请求,输入链接,
http://localhost:8089/employees/add。 选为body,x-www-form-urlencoded
插入成功页面,此时数据库中也成功插入?
?
?6、删除数据
/*
删除: http://localhost:8089/employees/del
*/
router.delete('/del',(req,res)=>{
Employee.destroy({
where:{
id:req.body.id
}
}).then(result=>{
res.json({
code:1002,
msg:'删除成功'
})
})
})
启动服务器, 在postman 中输入查询的地址,选为delete请求,输入链接,?
?http://localhost:8089/employees/del? 选为body,x-www-form-urlencoded。
删除成功页面,数据库中也成功删除 id 为002 的用户
?
?7、更新数据
/*
更新 http://localhost:8089/emplyees/update
*/
router.put('/update',(req, res) => {
Employee.findOne({
where:{
id: req.body.id
}
}).then((emp)=>{
emp.update({
name: req.body.name,
gender: req.body.gender,
birthday: req.body.birthday,
phone: req.body.phone,
address: req.body.address
}).then(result=>{
res.json({
code: 1003,
msg: '更新成功'
})
})
})
})
启动服务器, 在postman 中输入查询的地址,选为put请求,输入链接??
?http://localhost:8089/emplyees/update
?
?
|