【发布时间】:2014-03-28 17:34:57
【问题描述】:
我一直在寻找任何可以解释是否可以将一个“新”项目(附加)重新渲染到玉模板列表的帖子。
假设我们有一个日志条目列表,并且在第一次请求时,我们使用 res.render 和 Jades 的每个功能呈现从 MongoDB 集合“日志”中提取的列表。
-
由于我们喜欢从数据库中检索更新,我们还为该集合附加了一个 MongoWatch,用于侦听更改。更新后,我们可以执行一些附加到 Jade 模板中第一个列表的代码吗?
/* app.js */ /* Display server log */ app.get ('/logs', function(req, res, next) { // Using Monk to retrieve data from mongo var collection = db.get('logs'); collection.find({}, function(e,docs){ // watch the collection watcher.watch('application.logs', function(event){ // Code that update the logs list with the new single entry event.data? }); // Request resources to render res.render('logs', { logs: docs } ); }); }); <!-- logs.jade --> extends layout block content div each log in logs div.entry p.url= log.url
也许我应该以另一种方式使用模板引擎,我对 Express、Jade 还很陌生,非常感谢所有花时间回答此类问题的人..
// 问候
【问题讨论】:
-
您必须研究 WebSockets 或基于 Ajax 的替代方案,例如 Long Polling。 Socket.IO 是这些场景的通用 Node.js 框架。但是,HTTP 不允许服务器将数据推送到客户端,除非客户端有对服务器的开放请求。
-
感谢您的快速响应!我怕是这样,是我的一厢情愿! Socket.IO 有一个 npm 模块,我会研究一下
标签: javascript node.js mongodb express pug