2013-06-19 28 views
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) 

而且我不知道它是什麼意味着無法在任何地方找到它。有人知道我做錯了什麼嗎?提前致謝!

回答

1

您正在使用哪個版本的節點?檢查鏈接https://github.com/nearinfinity/node-unzip/issues/25看起來像一個bug

+0

我使用的是v0.10.8。如果它是一個錯誤,有什麼辦法可以解決它嗎? – ILiveForVR

+0

不確定問題是否得到解決。但是,您可以檢查節點腳本中是否存在驗證查詢(https://github.com/joyent/node/blob/master/lib/_stream_writable.js#L138)並查看您是否可以確保傳遞給該流的消息是正確的 – rvini

+1

我決定改變整個代碼,它終於有效,感謝您的幫助! – ILiveForVR

相關問題