0

在slideshare上的slide no 35ppt中提到

当我运行这段代码

var server = my_http.createServer();  

server.on("request", function(request,response){
var chunks = [];  
output     = fs.createWriteStream("./output");

request.on("data",function(chunk){

   chunks = forEachLine(chunks.concat(chunk),function(line){

      output.write(parseInt(line,10)*2);
      output.write("\n");

   })
});


request.on("end",function(){
   response.writeHeader(200,{"Content-Type":"plain/text"})
   response.end("OK\n");
   output.end()
   server.close()
})


});

server.listen("8080");

我得到错误

 chunks = forEachLine(chunks.concat(chunk),function(line){
            ^
ReferenceError: forEachLine is not defined

当然,我不知道我需要包含一些库,但是当我用谷歌搜索时,我什么也没找到。由于我完全是新手,所以我完全不知道如何解决它。

任何建议都将是可观的。

编辑

使用建议的答案我收到错误

    events.js:72
        throw er; // Unhandled 'error' event
              ^
TypeError: Invalid non-string/buffer chunk
    at validChunk (_stream_writable.js:150:14)
    at WriteStream.Writable.write (_stream_writable.js:179:12)
    at /var/www/html/experimentation/nodejs/first.js:18:20
    at Array.forEach (native)
    at forEachLine (/var/www/html/experimentation/nodejs/first.js:8:60)
    at IncomingMessage.<anonymous> (/var/www/html/experimentation/nodejs/first.js:17:18)
    at IncomingMessage.EventEmitter.emit (events.js:95:17)
    at IncomingMessage.<anonymous> (_stream_readable.js:736:14)
    at IncomingMessage.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)

谢谢

4

1 回答 1

0

请参阅proxy_stream.js

function forEachLine(chunks, callback) {
    var buffer = chunks.join("")
    buffer.substr(0, buffer.lastIndexOf("\n")).split("\n").forEach(callback)
    return buffer.substr(buffer.lastIndexOf("\n") + 1).split("\n")
}

回购的链接在第一张幻灯片上。

通过让我们的代码编辑错误消息

现在才知道实际问题。

我使用的是 nod v0.10,它在获取流时有问题,所以我得到了错误。降级到 v0.8 并且相同的代码运行完美。

于 2013-07-02T10:42:51.183 回答