节点.js类型错误:无效的非字符串/缓冲区块
Node.js TypeError: Invalid non-string/buffer chunk
答案:我终于得到了它,原来我也在错误的地方寻找记录器文件。它把它放在主文件夹中,而不是JavaScript所在的文件夹中。对我有用的代码是:
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)
而且我不知道这意味着什么,在任何地方也找不到它。有人知道我做错了什么吗?提前感谢!
在这里您可以将数据类型转换为字符串并打印出来。它将按预期工作。
代码错误 邮递员错误
我发现我在邮递员中解析相同的键和值对,同时点击应用程序编程接口导致无效的非字符串/缓冲区块
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- JavaScript-将数组缓冲区转换为字符串
- node.js请求POST数组“;第一个参数必须是字符串或缓冲区;
- 节点.js流 - 缓冲区到字符串给出 [对象对象]
- 将包含 ASCII 中二进制十六进制的字符串转换为缓冲区
- 如何将数组缓冲区转换为字符串
- 缓冲区中的nodejs解码字符串返回多行字符串
- 如何将utf-16缓冲区与字符串进行比较
- 如何识别数组缓冲区是字符串还是图像
- 将数组缓冲区转换为字符串
- Redis将字符串保存为某些操作系统的缓冲区,而不是其他操作系统
- 为什么我得到“未处理异常:不是字符串或缓冲区类型”
- Nodejs:将字符串转换为缓冲区
- 将数组缓冲区转换为字符串:超出最大调用堆栈大小