我有一个脚本应该列出一些数据,这些数据是通过 var['messages'] 等访问的对象。我的代码如下
var lines = fs.readFileSync(chattxt, 'utf8');
var lines = lines.split("\n");
var maxlines = 10;
if (lines.length < 10) maxlines = lines.length-1;
for (var i = (lines.length - maxlines); i<(lines.length)-1; i++){
socket.emit('message', { message: lines['message'] });
console.log(lines['message']);
}
但我不确定为什么它只是将 undefined 记录到控制台中,这些行的一个例子是
{"message":"<div>test</div>"}
我很困惑为什么它输出未定义
据我了解, line 不是 javascript 对象。它只是字符串。您需要转换为 Javascript 对象,例如-
for (var i = (lines.length - maxlines); i<(lines.length)-1; i++){
var msg = JSON.parse(lines[i]);
socket.emit('message', { message: msg.message });
console.log(msg);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句