mysql - Express-handlebars 将多个数据集路由到一页

标签 mysql express routes 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

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

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

问题是,我不知道如何通过 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
    })
  })
})

^^ 这不起作用,如果我只使用成员(member)数据进行路由,我也无法列出博客文章列表。

当按照上面所示进行操作时,我收到一条错误消息,指出当客户端已经收到一个 header 时,服务器无法发送多个 header - 这种剂量非常有意义。我只是真的很困惑我应该如何处理这个问题。

最佳答案

显然我想得不够仔细,但这是我睡了之后发现的解决方案:

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

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

关于mysql - Express-handlebars 将多个数据集路由到一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54927478/

相关文章:

mysql - 使用 Sequelize 计算关联条目

javascript - AngularJS 上传文件并将其发送到数据库

node.js - Express js 路由无法按预期使用 MEAN 堆栈

javascript - 如何在 Angular 8 中隐藏标题组件的导航栏按钮以防止路由?

python - 使用 sqlalchemy session 执行 sql DRASTICALLY 会减慢执行时间

mysql - mysql中如何连接名字

node.js - 从 Angular 向服务器发送数据时请求正文为空

scala - 如何迭代 playframework 2 scala 应用程序中的路由?

javascript - 每年在仪表板中显示的数字从 1 开始

node.js - TypeScript Joi : Property 'validate' does not exist on type 'Root'