首先安装npm install --save sequelize
还需要安装对应的数据库驱动npm install --save mysql2
1. 首先新建一个config.js,用于保存各种配置信息,数据库信息只是其中一部分
module.exports = {
db:{
dbName:"***",
userName:"***",
password:"***",
host: "***"
}
}
2. 新建一个db.js,数据库的公用连接文件,公共配置文件
const Sequelize = require("sequelize");
const {dbName,userName,password,host} = require("../utils/config.js").db
const db = new Sequelize(dbName, userName, password, {
host,
dialect: "mysql",
logging:false //nodemon里面不显示原始查询语句
});
module.exports = {db}
3. 新建一个模型文件user.js,并导出,后面所有操作都基于这个模型文件
第一种写法,推荐使用
const { db } = require("../utils/db");
//引入db创建的数据库连接实例,下面sequelize:db,db.define用到了
const Sequelize = require("sequelize");
const User = db.define( "user",
{
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: Sequelize.STRING,
allowNull: false
}
},
{
sequelize:db,
timestamps: false,//禁用时间戳
tableName: "user",//明确定义表名
}
);
module.exports = { User };
第二种写法,使用类的写法,不太习惯使用
const { db } = require("../utils/db");
const { Sequelize, Model } = require("sequelize");
//从sequelize中引入Sequelize, Model模块
class User extends Model {};//及下面都是固定写法
User.init(
{
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: Sequelize.STRING,
allowNull: false
}
},
{
sequelize:db,
timestamps: false,//禁用时间戳
tableName: "user",//明确定义表名
}
);
module.exports = { User };
4. 在路由中引入模型并使用
const router = require("koa-router")();
router.prefix("/api/users");
const {User} = require("../models/user.js")
router.post("/", async (ctx, next) => {
let res = await User.create(ctx.request.body);
ctx.body = {
code: 200,
msg: "添加成功",
res: res
};
});
module.exports = router;
5. 最后就是前端使用接口了
rowSave(row, done, loading) {
this.$http.post("/users", row).then(res => {
loading();
successMsg(res);
this.getTableData();
done();
});
}
网友评论