【发布时间】:2015-12-09 03:11:13
【问题描述】:
我有一个带有表单的小型 express.js 应用程序。提交时,它会运行一个 python 脚本,运行大约需要 5 分钟,并在运行时将消息转储到标准输出。现在我可以调用它并将输出记录到控制台就好了。我希望这些消息在我的翡翠模板中填充一个跨度区域(id=results),直到完成。
路线:
router.post('/create', function(req, res) {
res.render('build', function(err, html) {
res.send(html);
var options = {
mode: 'text',
pythonPath: '/usr/bin/python',
pythonOptions: ['-u'],
scriptPath: '/test',
args: ['test', '-t', req.body['type'], '-s', req.body['num'], req.body['name']]
};
var shell = new py('build', options);
shell.on('message', function (message) {
console.log(message);
});
shell.on('error', function(err) {
console.log(err);
});
});
});
玉:
extends layout
block content
.container
.panel.panel-default
.panel-heading: h3 Requesting a new Build
.panel-body
p
| <span id='results'></span>
script(src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js')
script(src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js')
我尝试了 res.render 和 res.send 的不同变体,但我认为我用这些变体是错误的。
【问题讨论】:
-
Jade 模板渲染一次。您必须设置某种轮询,可能使用socket.io
标签: javascript jquery node.js express pug