egg model 数据库操作的方法
发布于 10 个月前 作者 gnailiy 1266 次浏览 来自 问答

看了 egg 官网教程的文档之后有疑问:

mysql 插件 比如我使用了 egg-mysql 插件之后,在 Service 层,对数据库进行创建、读取、更新、删除分别使用 app.mysql.insert app.mysql.get/select app.mysql.update app.mysql. delete 四个api。 这几点是蛮清楚的。

但是后面的,Sequelize 插件 使用 sequelize 这个插件之后,我看的不是很明白, image.png 这几个 api 在 Class User 中也没有定义对应名称的方法,那是哪里来的呢?官网的文档里我好像没有找到对应的说明,具体还有哪些 findXXX 的 api ,作为一个小白,表示不清楚的。

egg-sequelize github 中 image.png 比如这里的两个方法,一个是 class 中定义的,findAll 函数是 model 中的吧

看了 egg-cnode 的部分代码,搜索了一下类似 findXXX 的函数,image.png image.png。 另外,我也搜索了一些egg 的项目,发现也有一些项目是不用 egg-mysql 的,只使用 egg-sequelize ,而创建、查询 能够直接使用 app.model.Class.createapp.model.Class.findOne/findAll/findById

因为确实我是个菜鸡,看了 egg 官网 mysql 和 sequelize 的教程之后,对于这几个 findXXX api 的使用确实产生了疑问,sequelizejs 官网 doc, 老跪,也不知道去哪里问了。

emmm 最后 总结一下我的问题,官网为什么搜索不到 Model 相关的文档? 尤其是跟数据库相关的这几个 findXXX 函数的说明部分?(感觉对菜鸟还是有必要的,比如光看官网的示例代码,并不能知道所有能使用的 model 原型链上的 findXXX 函数都有哪些) 。 手动 @atian25

3 回复

因为这几个函数,都是 sequelize 本身的功能, egg 只是做了简单的约定,实现了 Loader 和 目录规范而已。

对应的 Model 的 API,还是要去学习 sequelize 本身。

注意: Model 目前有 sequelize 和 mongodb 2 个不同的插件

另外科学上网看官网是必备技能,官网的References参考部分是最全的。

回到顶部