Mu(Node.js Mustache引擎)记录了一种使用util.pump()将其流读入HTTP写入流的方法。但是不推荐使用util.pump()来支持流对象上的pipe()方法。
所以我的测试是:
var http = require('http');
var mu = require('mu2');
http.createServer(function(req, res) {
mu.compileText("testname", "Hello world");
var stream = mu.render("testname", {});
stream.pipe(res);
res.end();
}).listen(8888);
但它没有输出任何东西。我也试过util.pump(),这也不起作用。
但是,我能够将一个on-data事件附加到mu :: render()并以这种方式将数据写入res。
将MU流传输到HTTP时,我做错了什么?
我正在使用节点版本0.10.5和mu2@0.5.17。
答案 0 :(得分:0)
解决方案是在结束HTTP响应流之前检查MU蒸汽结束事件:
var http = require('http');
var mu = require('mu2');
http.createServer(function(req, res) {
mu.compileText("testname", "Hello world");
var stream = mu.render("testname", {});
stream.pipe(res);
// Here's the trick.
stream.on('end', function() {
res.end();
});
}).listen(8888);