首页 > 解决方案 > 在 node.js 中动态渲染数据

问题描述

这是 node.js 中的一个典型路由,它有一个伪代码来连接数据库,使用查询获取一些数据,然后将它们传递给要呈现的页面,

router.get('/', function(req, res){
  db-connect(function(err, db) {
    if (err) {
      return console.log('error');
    }
    db.query('select * from table', function(err, results){
        if (err) {
          return console.log('error');
        }
        res.render('index',{
            'title':'my title',
            'pageHeader': 'my header',
            'results': results //dynamic ???
        });
    });
  }); //connect
});//router get

我正在使用这个伪代码来问一个一般性问题:

数据是动态的results,可能查询需要一段时间,所以results不能快速到达页面,所以我猜渲染也需要一段时间。

我怎样才能在准备好后立即(titlepageHeader)呈现静态数据和动态部分(results)?

我必须使用其他函数或其他语法吗?

谢谢

标签: node.jsasynchronousrender

解决方案


res.render填充您的模板并将其发送到客户端(浏览器)。当它在稍后阶段准备好时,您不能发送“更多”。

要么让客户端等待数据,要么先发送你的标题和标题,然后在浏览器上使用 XHR (javascript) 来获取其余部分。


推荐阅读