Express-handlebars 将多个数据集路由到一页
Express-handlebars routing multiple data sets to one page
我有两个 mysql 表,一个包含博客文章,另一个包含团队成员。
成员:
(...)
class Members {
static all (callback) {
pool.getConnection((err, connection) => {
if (err) throw err
connection.query('SELECT * FROM members', (err, results, fields) => {
callback(err, results)
connection.release()
})
})
}
(...)
}
module.exports = pool
module.exports.Bposts = Members
博文:
(...)
class Bposts {
static all (callback) {
pool.getConnection((err, connection) => {
if (err) throw err
connection.query('SELECT * FROM bposts', (err, results, fields) => {
callback(err, results)
connection.release()
})
})
}
(...)
}
module.exports = pool
module.exports.Bposts = Bposts
两个数据库都工作正常,我可以通过管理页面的表单向它们添加内容。
我想在该页面上添加两个列表,一个显示系统中已有的成员,另一个显示现有帖子。
问题是,我不知道如何通过 express 服务器将多个数据集路由到同一页面。
app.get('/forms', (request, response, next) => {
Members.all((err, members) => {
if (err) return next(err)
response.render('forms', {
members: members
})
})
Bposts.all((err, members) => {
if (err) return next(err)
response.render('forms', {
bposts: bposts
})
})
})
^^ 这行不通,如果我只使用会员数据进行路由,我也无法列出博客文章。
如上所示,当客户端已经收到一个时,我收到一条错误消息,提示服务器无法发送多个 headers - 哪个剂量非常合理。我真的很困惑我应该如何处理这个问题。
显然我想得还不够多,但这是我在沉思之后找到的解决方案:
app.get('/forms', (request, response, next) => {
Members.all((err, members) => {
if (err) return next(err)
Bposts.all((err, bposts) => {
if (err) return next(err)
response.render('forms', {
members: members,
bposts: bposts
})
})
})
})
这允许我通过管理页面上的把手访问这两个数据集。
我有两个 mysql 表,一个包含博客文章,另一个包含团队成员。
成员:
(...)
class Members {
static all (callback) {
pool.getConnection((err, connection) => {
if (err) throw err
connection.query('SELECT * FROM members', (err, results, fields) => {
callback(err, results)
connection.release()
})
})
}
(...)
}
module.exports = pool
module.exports.Bposts = Members
博文:
(...)
class Bposts {
static all (callback) {
pool.getConnection((err, connection) => {
if (err) throw err
connection.query('SELECT * FROM bposts', (err, results, fields) => {
callback(err, results)
connection.release()
})
})
}
(...)
}
module.exports = pool
module.exports.Bposts = Bposts
两个数据库都工作正常,我可以通过管理页面的表单向它们添加内容。
我想在该页面上添加两个列表,一个显示系统中已有的成员,另一个显示现有帖子。
问题是,我不知道如何通过 express 服务器将多个数据集路由到同一页面。
app.get('/forms', (request, response, next) => {
Members.all((err, members) => {
if (err) return next(err)
response.render('forms', {
members: members
})
})
Bposts.all((err, members) => {
if (err) return next(err)
response.render('forms', {
bposts: bposts
})
})
})
^^ 这行不通,如果我只使用会员数据进行路由,我也无法列出博客文章。
如上所示,当客户端已经收到一个时,我收到一条错误消息,提示服务器无法发送多个 headers - 哪个剂量非常合理。我真的很困惑我应该如何处理这个问题。
显然我想得还不够多,但这是我在沉思之后找到的解决方案:
app.get('/forms', (request, response, next) => {
Members.all((err, members) => {
if (err) return next(err)
Bposts.all((err, bposts) => {
if (err) return next(err)
response.render('forms', {
members: members,
bposts: bposts
})
})
})
})
这允许我通过管理页面上的把手访问这两个数据集。