1.安装
npm install egg-sequelize-plus --save
2.修改config/config.default.js中的配置
module.exports = appInfo => {
/**
* built-in config
* @type {Egg.EggAppConfig}
**/
const config = exports = {
// 从这开始为连接数据库的配置
sequelizePlus: {
dialect: 'mysql', // support: mysql, mariadb, postgres, mssql
database: '****', // 数据库名称
host: '***.***.***.***', // 服务器IP地址
port: 3306, // 数据库端口一般都是3306
username: '******', // 用户名
password: '******', // 密码
logging: false,
options: {
timezone: 'Asia/Shanghai',
pool: {
maxConnections: 5,
},
},
},
// 到这里结束
};
// use for cookie sign key, should change to your own and keep security
config.keys = appInfo.name + '_1648170127232_8593';
// add your middleware config here
config.middleware = [];
// add your user config here
const userConfig = {
// myAppName: 'egg',
};
return {
...config,
...userConfig,
};
};
3.修改config/plugin.js
看其他文章都没有放在static里面,我试了下报错:
Cannot use 'in' operator to search for 'enable' in egg-sequelize-plus
放里面就好了。
'use strict';
/** @type Egg.EggPlugin */
module.exports = {
// had enabled by egg
static: {
enable: true,
package: 'egg-sequelize-plus',
},};
4.定义模型
module.exports = app => {
const { STRING, INTEGER, DATE } = app.Sequelize;
const User = app.model.define('user', {
login: STRING,
name: STRING(30),
password: STRING(32),
age: INTEGER,
last_sign_in_at: DATE,
created_at: DATE,
updated_at: DATE,
});
User.findByLogin = async function (login) {
return await this.findOne({
where: {
login: login
}
});
}
// don't use arraw function
User.prototype.logSignin = async function () {
return await this.update({
last_sign_in_at: new Date()
});
}// User.sync({ force: true });
//同步数据库,开发开始时同步一次就好了,不然每次修改更新后都会清空数据库内容
return User;
};
5.增删改查的简单示例
const Controller = require('egg').Controller;
class UserController extends Controller {
async index() {
console.log(this.ctx.query);
const users = await this.ctx.model.User.findAll();
this.ctx.body = users;
}async add() {
await this.ctx.model.User.create(this.ctx.request.body);
this.ctx.body = {
code: 200,
}
}async update() {
await this.ctx.model.User.update(this.ctx.request.body, {
where: {
id: this.ctx.request.body.id
}
});
this.ctx.body = {
code: 200,
}
}async delete() {
await this.ctx.model.User.destroy({
where: {
id: this.ctx.query.id,
}
});
this.ctx.body = {
code: 200,
}
}
}module.exports = UserController;
之前添加路由接口就可以请求了。
【node|node egg 连接数据库 egg-sequelize-plus】有兴趣的可以关注我,后续会持续更新。
推荐阅读
- 北京市东城区赵海东副区长一行莅临博睿数据参观指导
- nvm解决多项目node-sass与node版本不对应问题
- 一些容易遗忘的操作|nvm常用命令,切换node版本
- 构建千万级高可用企业级Node.js应用一起无mi
- 构建千万级高可用企业级Node.js应用吾爱
- CSS|采用官方最简单的办法搭建vite+vue+ts开发项目框架
- 笔记|手机也有生产力,手把手教你用手机开发APP
- 构建千万级高可用企业级Node.js应用wumi
- 前端面试|【1.1w字】面试常问Javascript 事件循环、同步异步、宏微任务,彻底明白原来这么简单