4

私のapp.jsには、sqliteデータベースからデータを取得してビューの1つに渡すために次のものがあります。

app.get("/dynamic", function(req, res) {
    var db = new sqlite3.Database(mainDatabase)
    var posts = []

    db.serialize(function() {
        db.each("SELECT * FROM blog_posts", function(err, row) {
            posts.push({title: row.post_title, date: row.post_date, text: row.post_text})
        })
    })

    res.render("dynamic", {title: "Dynamic", posts: posts})
})

ここで私が間違っていることを誰かに教えてもらえますか。投稿配列は、何があっても空のままのようです。

編集プラグインには非同期がありますが、このメソッドは非同期ではないことを説明するチュートリアル に従っていました

以下はチュートリアルからの引用です

Node.js のコールバックと非同期の性質にもかかわらず、これらのトランザクションは連続して実行されるため、前のステートメントが現在のステートメントよりも先に実行されることがわかっているため、作成、挿入、クエリを実行できます。ただし、sqlite3 は同じインターフェイスを持つ「並列」ラッパーを提供しますが、すべてのトランザクションを並列で実行します。それはすべてあなたの現在の状況に依存します。

4

1 に答える 1