[英]Node.js print “undefined” in a impossible place
在我的代码中,每个打印有东西的地方都通过此函数:
log = function log (LOG, message) {
if (!message) {
message = LOG;
LOG = '\t';
}
console.log('@' + NAME + '\t-\t' + resize(LOG, 12) + '\t:\t' + message);
}
(此功能的原因不是问题,而是用于格式化)。
因此,每个新行都以@开头,无论此后应该打印什么数据。
但是在我的日志中,我有这个:
@App - play : [ 'FC4.mp4',
'ME.mp4',
'ME2.mp4',
'MER.mp4',
'PvS.mp4',
'BF3.mp4',
'BF4.mp4',
'BFH.mp4',
'BFH2.mp4',
[length]: 9 ]
undefined
@App - play : at 2015-03-17_16-56
逐行注释掉只是使undefined
出现更快:
@App - update : Done
undefined
@App - play : at 2015-03-17_17-08
在代码的任何地方都没有使用console.log
, process.stdout.write
或其他写入功能,并且在代码的任何地方都没有使用\\n
字符。
未定义怎么会这样显示? 可能是什么原因造成的? 不管我做什么,都吓到我看到它出现在日志的同一位置。
我已经冷静下来以免发布一个愚蠢的问题,但是该行来自omxdirector,这是一个npm模块,在使用前我没有完全检查过。
谢谢你。
(该行位于omxdirector / main.js中:
var sendAction = function (action) {
if (commands[action] && omxProcess) {
try {
omxProcess.stdin.write(commands[action], function (err) {
console.log(err);
});
} catch (err) {
console.log(err);
}
}
};
修改后,一切恢复正常)
在我看来,NAME可能没有为一次通话定义。 您可以通过执行以下操作进行测试:
if(NAME) {
console.log('@' + NAME + '\t-\t' + resize(LOG, 12) + '\t:\t' + message);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.