续集QueryChainer语法

与Sequelize QueryChainer有一些困难。 通常我不需要这样做,但是我决定尽早处理自己的关联,而不是使用build立在关联pipe理中的模块(事实certificate这是相当惩罚的)。

我正在写出我的REST例程,并试图删除一些基于已经提取或需要提取的logging的logging。 而不是有4-5嵌套的callback,我决定了QueryChainer和一个串行运行将是适当的。

在这个例子中,我带着一个用户,如果find了一个用户,我想拼凑一行查询来处理删除特定的关联。 我遇到的问题主要是在使用模型EventEmitting方法之外理解chainer的语法。

// Find user, destroy it and associations db.Models.user.find({ where: {STUID: id} }) .success(function (user) { if (!user) { res.locals.err = { status: 'FAILED', message: 'Could not delete user', reason: 'No user resource found' } } else { chain = new db._sqlize.Utils.QueryChainer(); chain.add(user.destroy()) // Check and destroy author association if (user.AUTHOR) { // Would like to fetch the specific author model // db.models.author.find({}) // ... and destroy it too, // author.destroy() // without having to nest } } }); 

sequelize querychain语法指定执行以下操作:

 .add(Model, 'function', [param1, param2]) 

但是我不太确定这意味着什么。 我可以在这里定义内联函数吗? 函数只是一个string寻找一个已经在其他地方定义的string,或者它是模型的函数,我'加'? 文档在这里感觉有点匆忙。

你需要的queryChain的语法是:

 .add(sequelize, 'sync', [ {force: true} ]) .add(Partner, 'create', [ {name: 'foo'} ]) 

我犯了同样的错误,你可以在这里看到: https : //github.com/sdepold/sequelize/issues/385#issuecomment-11690183

这不完全是一个答案,但我觉得经过一些深入的研究和实验,Sequelize没有我需要的灵活性。 这是一个很酷的图书馆,但是,我希望能够控制或至less控制关系/协会。

我已经玩了几个小时的MongoDB,并决定用MySQL和Sequelize来更新一个使用mongoose的实现是值得的。 我正在build立一个丰富的API,我真的需要一个灵活的后端组件。

其他项目我可能稍后再回到这个问题。 Sequelize是非常好的,除了一切与整数和所有的嵌套事件callback连接在一起,以处理简单的数据CRUD。