egg里怎么完美使用sequelize
发布于 7 年前 作者 jiyarong 11433 次预览 最后一次回复是 7 年前 来自 问答
感觉model层写的很混乱,求一个example
module.exports = app => {
const { DATE, INTEGER, STRING } = app.Sequelize;
return app.model.define('Post', {
title: STRING,
user_id: INTEGER,
created_at: DATE,
updated_at: DATE,
}, {
classMethods: {
associate() {
app.model.Post.belongsTo(app.model.User, { as: 'user' });
},
},
});
};
这种写法,真是写不下去 能否有办法变成类似于这样
Class Post extends Sequelize {
static ...
}
10 回复
https://github.com/eggjs/egg-sequelize
@i5ting 用这一套貌似不能用es6的语法糖 model看起来是这样的
混乱不堪
@i5ting 看到是generator做的异步控制, 有没有async/await的版本啊
一样的,应该支持 await 的,语法对应着写即可
Class 的方式,可以考虑下,@xadillax 的 https://github.com/eggjs/egg/issues/1775
我看了半天的文档,终于发现了一个可以搞的方法
1.定义了模型,模型的名字就是表的名字 2.继承了 Sequelize.Model后,就会拥有init静态方法,可供调用 3.init第一个参数就是我们想要的属性(attr),第二个参数的sequelize,要的是Sequelize的实例。 4.依旧不怎么舒服,可以将init方法收敛于类中调用。 5.node层一般用来做BFF比较多,调用底层数据库逻辑工业实践太少,还需要高手来完善一下这些个ORM。。。。。。。。。。。
@215566435 多谢,我等会去试下,感觉egg离所谓的
企业级还是任重而道远@jiyarong 主要是大佬们涉及数据库的东西基本交给java把。node只是中间层
你的问题不在于使用egg里怎么完美使用sequelize, 事实上,你的问题是如何完美使用sequelize.
es6的语法糖只是糖,node js 的肉是原型继承(Prototype inheritance) , 用得好的话彈性和可读性比JAVA要高
在我的koa2-safe-start 1.Relation relation寫在relation.js
2.Common instance function
@jiyarong 可以看看 nest.js ,很像spring ,我们基于这个的开源项目: https://github.com/notadd/notadd/tree/next