Node.js &引用;“在结尾后写”;服务器中使用nodejs时出错

Node.js &引用;“在结尾后写”;服务器中使用nodejs时出错,node.js,Node.js,您好,我正在制作这个小型本地服务器,它接收POST请求并返回所有大写字母的请求。它还保存请求的本地副本以供测试之用。我不认为这行代码是问题的根源,因为我试图删除它,但问题仍然存在。问题是,当我尝试测试它时,它总是以“错误:结束后写入”的方式使服务器崩溃。有人能解释为什么会发生这种情况吗?谢谢 var map = require('through2-map'); var http = require('http'); var fs = require('fs'); var server = ht

您好,我正在制作这个小型本地服务器,它接收POST请求并返回所有大写字母的请求。它还保存请求的本地副本以供测试之用。我不认为这行代码是问题的根源,因为我试图删除它,但问题仍然存在。问题是,当我尝试测试它时,它总是以“错误:结束后写入”的方式使服务器崩溃。有人能解释为什么会发生这种情况吗?谢谢

var map = require('through2-map');
var http = require('http');
var fs = require('fs');

var server = http.createServer(function (req, res) {

    if (req.method !== 'POST') {
        return res.end('Please send POST\n');
    }
    else {
        req.pipe(fs.createWriteStream('post.txt'));
        req.pipe(map(function (currValue) {
            return currValue.toString().toUpperCase()
        })).pipe(res);
        res.end();
    }       
})

server.listen(8000);
这是完全错误:

events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: write after end
    at ServerResponse.OutgoingMessage.write (_http_outgoing.js:441:15)
    at Through2.ondata (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\readable-stream\lib\_stream_readable.js:619:20)
    at emitOne (events.js:96:13)
    at Through2.emit (events.js:188:7)
    at addChunk (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\readable-stream\lib\_stream_readable.js:291:12)
    at readableAddChunk (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\readable-stream\lib\_stream_readable.js:278:11)
    at Through2.Readable.push (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\readable-stream\lib\_stream_readable.js:245:10)
    at Through2.Transform.push (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\readable-stream\lib\_stream_transform.js:148:32)
    at Through2._transform (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\through2-map\index.js:20:12)
    at Through2.Transform._read (C:\Users\ger\Documents\Javascript\nodeJS\node_modules\readable-stream\lib\_stream_transform.js:184:10)

您将在响应完成之前结束响应。删除
res.end()

在这种情况下,如何结束连接?还是自动结束?当请求流结束时自动结束。