Nodejs - 将MU2连接到HTTP?

时间:2013-05-03 05:49:09

标签: node.js mu

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。

1 个答案:

答案 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);