这似乎很基本,但我遗漏了一些东西。我正在使用node.js formidable模块,我在控制台上记录错误,如下所示:
uploadProc.on('error', function(err) {
console.log("Form upload error...");
console.log(typeof err);
console.log(err);
console.log(err[0]);
console.log(err['Error']);
console.log(JSON.stringify(err);
});
输出结果为:
object
[Error: Request aborted]
undefined
undefined
{}
正如我所看到的,它既不是数组也不是具有属性Error的常规对象。如果我想对它进行字符串化,无论它是什么类型,我该怎么做?可能是字符串开头。但如果是这种情况,typeof会返回" string。"我在Mozilla处查看此信息。似乎属于"任何其他对象"类别。有人可以解释控制台记录的对象的类型是[错误:请求已中止]吗?
答案 0 :(得分:1)
这是Error object:
> new Error('hello world') instanceof Error
true
它有一个.toString()
方法,您可以使用它来对其进行字符串化:
> console.log(new Error('hello world').toString())
Error: hello world
或者,如果要输出堆栈跟踪:
> console.log(new Error('hello world').stack)
Error: hello world
at repl:1:13
at REPLServer.defaultEval (repl.js:262:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:211:10)
at REPLServer.Interface._line (readline.js:550:8)
at REPLServer.Interface._ttyWrite (readline.js:827:14)