Мне было интересно, как лучше всего обрабатывать вложенные mysql-запросы - nodejs.Узел Mysql async несколько запросов
Так что-то вроде этого:
connection.query("SELECT * FROM blogs ORDER BY time DESC", function(err, blogs, fields) {
for (blog in blogs) {
connection.query("SELECT * FROM tags WHERE blog_id='blog.id' ", function(err, tags, fields) {
blog.tags = tags
});
}
res.send(blogs)
});
Это, очевидно, не работает, из-за асинхронной природы. Результат уже возвращается до того, как будут извлечены теги.
Я читал на узле, и обратные вызовы и обещания, похоже, это путь. Но я не могу понять, как лучше всего использовать их в этом небольшом примере.
Thx!
Это была бы хорошая возможность начать использовать библиотеку обещаний, такую как [Q] (https://github.com/kriskowal/q), в этом случае это ['Q.spread'] (https://github.com/kriskowal/q#combination) (или, возможно, [эти примеры сокращения] (https://github.com/kriskowal/q#sequences) – Bojangles