Базовая HTML-форма с enctype = 'multipart' здесь не включена.Первая поездка на сервер выполняется без ошибок, но после двух поездок по пути загрузки.Узел выдает «Ошибка записи после завершения».Вызов resp.end () внутри события не приводит к этой ошибке, и это происходит только в том случае, если потоковая передача выполняется внутри грозного события.
const http = require( "http" );
const form = require( 'formidable' ).IncomingForm();
function fileStream( filepath){
let readstream = fs.createReadStream(filepath );
readstream.setEncoding( "utf8" );
return readstream;
}
let server = http.createServer();
server.listen( 8080 );
server.on( "request", function( req, resp ){
let requestpath = url.parse( req.url ).pathname.slice( 1 );
switch ( requestpath ) {
case "upload":
form.parse( req );
form.on( "field", function( field ){
//throws "ERR_STREAM_WRITE_AFTER_END" after 2nd request/upload trip
filestream( "index.html").pipe( resp );
} )
break;
default:
filestream( "index.html").pipe( resp );
break;
}
} )
Согласно Node.js, поток, переданный IncomingMessage, вызовет end () после закрытия потока чтения.Я пытаюсь понять, в чем причина ошибки.поскольку грозный, похоже, не заканчивается ответ.