2017-04-13 113 views
1

我有[“消息”]等我的代码遵循JSON对象返回undefined [的NodeJS,FS]

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']); 
    } 

但我是一个脚本,应该列出一些数据,而该对象通过VAR访问不知道为什么它只是未定义日志记录到控制台,该行的一个例子是

{"message":"<div>test</div>"} 

林很困惑,为什么它的输出不确定

回答

0

据我了解过线不是一个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); 
    } 
+0

Thankyou的帮助! –