节点.js在不可能的地方打印“未定义”
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);
}
相关文章:
- 为什么这个JS代码打印未定义
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- 节点.js在不可能的地方打印“未定义”
- 文本框的值打印为“未定义”
- 使用Javascript打印HTML:未定义错误
- 为什么Javascript代码打印'未定义'即使变量被声明为全局变量
- 将 JSON 数据解析为 SELECT 打印未定义
- 自定义打印功能,打印内容未显示在第一个事件触发器上
- 本地存储的 json 数组正在打印,但来自 json 的值在 cordova 应用程序中给出未定义
- 在自定义指令中未定义的 NG 模型值打印
- 为什么这个 JavaScript 代码在控制台上打印“未定义”
- 得到“;未定义的“;当我用js打印json数组时
- 从父对象内部的相邻对象打印对象会导致'未定义'消息
- 打印字符串显示为未定义
- 打印Javascript split()数组并将未定义的值转换为字符串
- JQuery函数只打印未定义
- 无法读取property 'length'未定义的(使用geoserver打印地图)
- 变量范围困惑,打印未定义的变量声明在函数内
- 为什么console.log有时会为已导出的变量打印未定义