【发布时间】:2017-11-29 09:35:38
【问题描述】:
我有一个允许用户评论电影的应用程序,我正在尝试添加一项功能,该功能可以从电影中抓取海报并将其显示在评论旁边。我尝试使用
查询数据库并返回电影列表 => imdb-id 获取 IMDB ID => imdb 获取海报 url => 将其添加到变量并使用 pug 编译
但是,我无法让它工作,因为数组总是先返回空,然后再运行其他任何东西。我尝试使用异步瀑布,但我不知道如何遍历返回的数组,并传递 ID 以获取 url
async.waterfall([
function (callback) {
console.log('Request Id:', username);
var query = "SELECT title, rating, review FROM movies WHERE username = \"" + username + "\" ORDER BY title;";
callback(null, query);
}, function (query, callback) {
// Run query on db
connection.query(query, callback);
}, function (rows, fields, cb) {
// Get array of titles
var rowArray = rows;
console.log(rowArray);
}
],
function(err) {
// error stuff
})
【问题讨论】:
-
为什么不使用 Promises 或 async/await 来代替?
-
这是异步的,但我会检查 Promises
-
我知道这也是异步的,但是我说的是原生的 async / await,它实际上是 promise 的语法糖。我不确定你的目标是什么节点版本/es 版本,所以我不能告诉你是否可以使用它。如果可以,我可以推荐你使用它,因为它使代码更具可读性。
-
哦,好吧。我想我实际上会用 AJAX 来做这件事,它会让事情变得容易得多。无论如何,谢谢!
-
什么?您提供了 node.js 作为标签,这意味着您在这里谈论的是后端代码。您通常从不从前端运行数据库查询。无论如何,我发布了一个答案来解释你如何解决它。这应该有助于前端和后端编程。
标签: javascript node.js