Tôi có một tập lệnh/máy chủ node.js đọc một số đầu vào từ stdin khi được khởi chạy. Tuy nhiên, đôi khi không có dữ liệu được thông qua. Điều này là phiền hà vì có vẻ như trong trường hợp này, không phải sự kiện data
cũng không phải end
được gọi. Làm thế nào tôi có thể phát hiện khi đây là trường hợp trong mã node.js?node.js: Cách phát hiện luồng stdin trống?
Tôi muốn tránh phải thêm các ký tự "kết thúc" đặc biệt ở cuối đầu vào, để không làm phiền khách hàng. Mã được liên kết dưới:
var newHTML = '';
var gfm = spawn(__dirname + '/node_modules/docter/bin/github-flavored-markdown.rb');
process.stdin.on('data', function(chunk){
gfm.stdin.write(chunk);
});
process.stdin.on('end', function(){
gfm.stdin.end();
});
gfm.stdout.on('data', function(data) {
newHTML += data;
});
gfm.on('exit',function(ecode){
socket.emit('newContent', newHTML);
});
process.stdin.resume();
Các bạn đã thử process.stdin.on ('lỗi', function() {})? – Marshall
hoặc gfm.stdout.on ('error', function() {}) – Marshall
tìm thấy giải pháp? điều đó dường như là không thể. – antitoxic