快速把手将多个数据集路由到一页

时间:2019-02-28 14:02:39

标签: mysql express routing express-handlebars

我有两个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

两个数据库都能正常工作,我可以通过管理页面的表单向其添加内容。

我希望在该页面上添加两个列表,一个列表显示系统中已经存在的成员,另一个列表显示现有的帖子。

问题是,我不知道如何通过快递服务器将多个数据集路由到同一页面。

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
    })
  })
})

^^这行不通,如果我仅使用会员数据进行路由,那么我也无法列出博客文章。

当执行上述操作时,我收到一条错误消息,提示服务器在客户端已经收到一个报头时无法发送多个报头-这很合理。我对如何处理这个问题感到非常困惑。

1 个答案:

答案 0 :(得分:0)

显然我没有足够努力,但这是我睡在上面后找到的解决方案:

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
      })
    })
  })
})

这使我可以通过管理页面上的把手访问两个数据集。