假设我有一个 Express 应用程序,我想显示从数据库中获取的内容。我有一个包含这个的文件(使用 node-mysql 进行数据库交互)
exports.getData = function() {
connection.query('SELECT * FROM table', function (error, rows, fields) {
return rows[0];
});
}
我希望能够调用它并将数据传递给模板语言。但是,它不是那样工作的,因为(我认为)回调直到函数退出后才会返回,导致 getData 返回未定义。
我一定错过了一些关于回调的重要“啊哈”时刻。如果我想与数据库交互,我是否被迫在 routes/index.js (我正在服务的页面的控制器)中执行所有逻辑并最终在一系列回调的底部呈现页面?