如题
官方文档提到的那些就不继续说明了,分享亲身经历的三处比较浪费时间的地方
首先放张官网的图,记住这张图!!!(次数*1)
坑点一:ts报错
对跟我一样刚刚接触ts的朋友来说,遇到ts报错是需要花点时间处理的,正常跟着文档走完后,遇到的第一个问题就是ts报错
解决办法:
编辑typings/index.d.ts
import 'egg';
declare module 'egg' {
interface Application {
mysql: any;
}
}
复制代码
坑点二:配置文件放错地方
注意官网这句话 (次数*2)
这是官方给的写法:
// config/config.${env}.js
exports.mysql = {
// 单数据库信息配置
client: {
// host
host: 'mysql.com',
// 端口号
port: '3306',
// 用户名
user: 'test_user',
// 密码
password: 'test_password',
// 数据库名
database: 'test',
},
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
};
复制代码
实现时候的写法:(注意是写在那个导出函数里面)
config.mysql = {
// 单数据库信息配置
client: {
// host
host: 'localhost',
// 端口号
port: '3306',
// 用户名
user: 'root',
// 密码
password: '123456',
// 数据库名
database: 'mydb',
},
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
};
复制代码
坑点三:plugin引入写错
不知道大家遇没遇到过这样的报错,按正常mysql应该会挂载到了this.app,但调用就报错,显示undefined
service代码:
const user = await app.mysql.select('user');
复制代码
起初以为是mysql密码不对,或是哪里设置不对,检查了一圈mysql没问题,下载了一个可视化db工具,也能正常连接,于是在看egg的配置,也跟官网一样,这就比较离谱了,后来猛地想起这张图(次数*3)
这是官网推荐的plugin配置
我改完之后生效的代码
走过这三处坑,到此,egg就可以正常和数据库进行交互了
近期评论