1、安装sequelize
Sequelize 是Node 的一个 ORM(Object-Relational Mapping) 框架,用来方便数据库操作。
// 安装sequelize $ npm install --save sequelize // 安装mysql驱动 $ npm install --save mysql2
2、配置连接数据库
//dbs/config.js
module.exports = {
// 打开哪个数据库
database: '***',
// 用户名
username: '***',
// 密码
password: '****',
// 使用哪个数据库程序
dialect: 'mysql',
operatorsAliases: false,
// 地址
host: 'localhost',
// 端口
port: 3306,
// 连接池
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
// 数据表相关的全局配置
define: {
// 是否冻结表名
// 默认情况下,表名会转换为复数形式
freezeTableName: true,
// 是否为表添加 createdAt 和 updatedAt 字段
// createdAt 记录表的创建时间
// updatedAt 记录字段更新时间
timestamps: true,
// 是否为表添加 deletedAt 字段
// 默认情况下, destroy() 方法会删除数据,
// 设置 paranoid 为 true 时,将会更新 deletedAt 字段,并不会真实删除数据。
paranoid: false
},
// 时区
timezone: '+08:00'
}
3、定义数据模型
//dbs/models/users.js
module.exports=(sequelize,DataTypes)=>{
return sequelize.define('users',{
id:{
type:DataTypes.INTEGER(),
primaryKey:true
},
nickname:{
type:DataTypes.STRING(),
},
avatarUrl:{
type:DataTypes.STRING(),
}
});
}
将模型导入一个文件index.js统一调用。
//dbs/models/index.js
const Sequelize=require('sequelize')
const config=require('../config')
const sequelize=new Sequelize(config)
const path=require('path')
//export const sequelize = new Sequelize(config)
const User=sequelize.import(path.join(__dirname,'users'))
module.exports={
User
}
4、接口供前端调用
//api/users.js
const router = require('koa-router')()
const {User}=require('../dbs/models/index')
router.prefix('/users')
router.get('/', async (ctx, next) => {
let user = await User.findAll({
})
ctx.body = {
user
}
})
module.exports = router
然后将这个接口路由放到主文件中便可以使用了
// 引入接口
const users=require('./api/users')
// 路由
app.use(users.routes()).use(users.allowedMethods())
访问这个接口便可以得到数据: