Я создаю небольшую программу, которая читает STDIN и увеличивает строку с каждым блоком данных, например:
var fullchunk;
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
if (!fullchunk) {
fullchunk = "";
}
fullchunk += chunk;
});
process.stdin.once('end', function () {
process.stdin.removeAllListeners('data');
eval(fullchunk);
});
но почему-то кажется, что я не могу использовать событие end
здесь, потому что когда текст, который я отправляю через stdin, похож на http-сервер, он не будет работать должным образом, но он будет работать хорошо, если я использую только onData
событие без объявления чего-либо внутри события end
.
//STDIN content
require("http").createServer(function(request, response) {
response.writeHead(200);
response.end("Hello World");
}).listen(3000);
Так что это определенно одна вещь, которую я не могу понять, почему действие сервера http продолжает выполняться с этим, но оно не реагирует на мои запросы, не уверенный, имеет ли это что-либо с переменной scope, которая наследуется основной функцией, или если функция end
отменяет все остальные запросы.
Любая помощь будет чрезвычайно ценится:)