私は、conditions
とlinks
とnodes
に関連付けられたhasMany
を持つモデルintent
を持っています。 nodes
自体もlinks
に関連しています。SequelizeでclassMethodsを使用すると、より簡潔になる方法がありますか?
エクスプレスルートでは、すべての情報を1つのオブジェクトで取得したいと考えています。私が今やったやり方は、非常にコールバックで読めない。それはうまくいきますが、私はこのようなことを書く良い方法があると思っています。
app.get('/api/intents/:id', function(req, res) {
models.intent.findOne({
where: {
id: req.params.id
}
})
.then(function(intent) {
intent.getConditions() // call generated function from intent model for conditions
.then(function(conditions) {
intent.getLinks() // then call generated function from intent model for links
.then(function(links) {
intent.getNodes() // then call generated function from nodes model for links
.then(function(nodes) {
Promise.map(nodes, function(node) {
return node.getLinks() // Even deeper nested and getting out of hand
.then(function(links) {
node.setDataValue('links', links)
})
})
.then(function() {
intent.setDataValue('conditions', conditions)
intent.setDataValue('links', links)
intent.setDataValue('nodes', nodes)
res.json(intent)
})
})
})
})
})
})
あなたの方がはるかに良い方法です。 –
ああ、私は、私は自動生成された関数で盲目だったと思います。これは完璧です、ありがとう。 – Hyra