json 对象返回未定义 [nodejs, fs]
json object returning undefined [nodejs, fs]
我有一个脚本应该列出一些数据,这些数据是通过 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>"}
我很困惑为什么输出未定义
据我所知,每一行都不是 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);
}
我有一个脚本应该列出一些数据,这些数据是通过 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>"}
我很困惑为什么输出未定义
据我所知,每一行都不是 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);
}