-
初始化项目 npm install express --save // 初始化express项目 npm install --save sequelize // 安装sequelize
-
引用Sequelize
-
连接数据库 新建一个model文件夹,文件下创建一个db.js文件
const Sequelize = require('sequelize') // 创建连接 const sequelize = new Sequelize( 'user', // 数据库名 'root',// 用户名 '123456', // 密码 { host: 'localhost', dialect: 'mysql', // 格式化时间 dialectOptions: { dateStrings: true, typeCast: true }, timezone: '+08:00' //改为标准时区 }, ) module.exports = sequelize -
创建模型
model文件夹下创建一个user.js文件
const {Sequelize, DataTypes} = require('sequelize')
const sequelize = require('./db')
const User = sequelize.define(
'Users', // 别名
{
// 定义模型属性
// 需要根据数据库的结构定义
user_id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
user_name: {
type: DataTypes.STRING,
allowNull: false
},
user_account: {
type: DataTypes.STRING,
allowNull: false
},
user_password: {
type: DataTypes.STRING,
allowNull: false
},
createdAt: {
type: DataTypes.DATE,
allowNull: false
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false
},
}, {
tableName: 'users',// 表名
freezeTableName: true // 表名后面是否不需要以s结尾
});
module.exports = User
5. 查:
var express = require('express');
var router = express.Router();
const User = require('../model/user')
/* GET users listing. */
router.get('/', function (req, res, next) {
const {user_name} = req.query
const where = {}
if (user_name) {
where.user_name = user_name
}
User.findAll({
where
}).then(data => {
res.render('user.html', {
users: data
})
})
});
module.exports = router;
5. 增:
router.post('/create', function(req, res) {
const user = req.body
// user.created_at = new Date().toLocaleString()
console.log(user);
User.create(user).then(data => {
res.redirect('/users')
})
})
7. 改:
// 用于获取所需要修改信息的用户
router.get('/edit', function (req, res) {
const user_id = req.query.user_id
User.findByPk(user_id).then(data => {
res.render('user-update.html', {
user: data
})
})
})
// 用于接收提交的修改数据并修改
router.post('/edit', function (req, res) {
const user = req.body
User.update(user, {
where: {
user_id: user.user_id
}
} ).then(data => {
console.log(data);
res.redirect('/users')
})
})
9. 删:
// 这次使用了async await进行异步等待操作,无需每次都在数据库查询操作中使用.then
router.get('/delete', async function (req, res) {
const user_id = req.query.user_id
console.log(user_id);
await User.destroy({
where: {
user_id: user_id
}
})
res.redirect('/users')
})