0
回答: 我終於明白了,原來我也在尋找記錄器文件的錯誤位置。 。它把它在主文件夾中的JavaScript是在該文件夾,而不是爲我工作的代碼是:Node.js TypeError:無效的非字符串/緩衝區塊
var fs = require('fs');
var log = fs.createWriteStream('nodelogger.txt', {flags: 'a', encoding: 'utf-8',mode: 0666});
server.listen(8888);
app.use("/", express.static(__dirname + '/files'));
io.sockets.on('connection', function (socket) {
socket.on('msg', function (data) {
io.sockets.emit('new', data);
log.on('error', function (err) {
console.log(err);
});
console.log(data);
log.on('error', function(e) { console.error(e); });
var newdata = JSON.stringify(data);
log.write(newdata += "\r\n")
});
});
我完全新的Node.js,所以我真的可以使用一些幫助。 我試圖登錄從聊天我做 到目前爲止,我有這樣的消息:
var fs = require('fs');
var log = fs.createWriteStream('nodelogger.txt', {'flags': 'a'});
server.listen(8888);
app.use("/", express.static(__dirname + '/files'));
io.sockets.on('connection', function (socket) {
socket.on('msg', function (data) {
io.sockets.emit('new', data);
log.write(data);
log.on('error', function (err) {
console.log(err);
});
});
});
但我不斷收到此錯誤:
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 Socket.<anonymous> (/Users/test/Desktop/Chat/app.js:16:9)
at Socket.EventEmitter.emit [as $emit] (events.js:95:17)
at SocketNamespace.handlePacket (/Users/test/Desktop/Chat/node_modules/socket.io/lib/namespace.js:335:22)
at Manager.onClientMessage (/Users/test/Desktop/Chat/node_modules/socket.io/lib/manager.js:488:38)
at WebSocket.Transport.onMessage (/Users/test/Desktop/Chat/node_modules/socket.io/lib/transport.js:387:20)
at Parser.<anonymous> (/Users/test/Desktop/Chat/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
at Parser.EventEmitter.emit (events.js:95:17)
at finish (/Users/test/Desktop/Chat/node_modules/socket.io/lib/transports/websocket/hybi-16.js:288:16)
而且我不知道它是什麼意味着無法在任何地方找到它。有人知道我做錯了什麼嗎?提前致謝!
我使用的是v0.10.8。如果它是一個錯誤,有什麼辦法可以解決它嗎? – ILiveForVR
不確定問題是否得到解決。但是,您可以檢查節點腳本中是否存在驗證查詢(https://github.com/joyent/node/blob/master/lib/_stream_writable.js#L138)並查看您是否可以確保傳遞給該流的消息是正確的 – rvini
我決定改變整個代碼,它終於有效,感謝您的幫助! – ILiveForVR