如何从控制台读取节点错误?

时间:2018-12-18 21:47:17

标签: node.js express error-handling

我在控制台中遇到此错误,下面给出的数字是8301。这个数字是什么意思,如何使用它来解决错误?

  

(节点:8301)DeprecationWarning:当前URL字符串解析器为   已过时,将在以后的版本中删除。使用新的   解析器,将选项{useNewUrlParser:true}传递给MongoClient.connect。

请注意,我将其作为示例错误尝试并理解打印的号码( node:8301 )。我不需要错误本身的帮助。

请帮助我了解节点错误。

4 个答案:

答案 0 :(得分:1)

(node:8301)的数字部分是节点进程的进程ID(pid)。它附加到Node.js本身发出或通过其process.emitWarning()实用程序发出的所有 警告 (在问题的特定示例中,警告来自使用process.emitWarning()的用户模块。)

对于它的价值,NODE_DEBUG还会在已记录的信息中记录pid,尽管奇怪的是不是这样。

我不确定是否真的有官方文件。当前正在讨论将“警告”部分添加到官方文档中:https://github.com/nodejs/node/issues/24987

这个问题也被问到https://github.com/nodejs/node/issues/25120,我在这里发现并最初回答了该问题。

答案 1 :(得分:1)

这是PID(进程ID),对解决代码本身不是很有用。行号会更相关。

答案 2 :(得分:0)

尝试一下:

MongoClient.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true })

来自here

答案 3 :(得分:0)

老实说,自2009年以来我一直在节点上工作,除非有需要我的软件来处理错误的信息,否则我不会费心去研究错误代码。通常,我只是读错误文本。

在您的示例中,错误文本清楚地告诉我问题出在哪里。

我发现,错误消息和代码的质量在所使用的库中差别很大。