クラス用にオブジェクトリレーショナルマッピング(ORM)を使用して小さなアプリケーションを作成することになっていました。これは非常にシンプルなアプリケーションで、クライアント側の入力を受け取り、データベースに配置し、クライアントに表示します。コールバック関数のイベントパスをORMファイルに分解してください。
しかし、私は3つのファイル間でコードを渡す際に何が起こっているのかを理解するのに苦労しています。ファイルburgers.js
が必要なファイルburgers-controller.js
があり、ファイルにはorm.js
が必要です。完全なコードを見たい人は、私のGithubで見つけることができます。
私はORMを使用してすべてをモジュール化するという理屈と利点を得ていますが、コード内で起こっていることをどのような順序で細分化するかが必要です。
したがってburgers-controller.js
ファイルには次のコードがあります。
router.get("/", (req, res)=>{
burgers.selectAll((result)=>{
let handlebarsObj = {
burgers: result
}
res.render("index", handlebarsObj)
});
})
次に、burgers.js
内に次のコードがあります。
let burgers = {
selectAll: (callback)=>{
orm.selectAll("burgers", (result)=>{
callback(result);
})
}
}
最後にorm.js
にあります。
let orm = {
selectAll: (tableName, callback)=>{
let queryString = "SELECT * FROM ??"
connection.query(queryString, tableName, (err, data)=>{
if (err){console.error("ERROR: " + err.stack)}
callback(data)
})
}
}
ORMファイルはMySQLデータベースに接続されています。
ここで何が起こっているのか、どのような順序で説明されますか?