debugging节点,什么使它保持运行?
我有一个为Node.Js编写的脚本,收集数据的负载,处理它,保存,然后完成。 不幸的是我所做的是阻止脚本完成和节点closures,而是保持打开状态。
我可能只是通过我所做的更改,并试图追踪它,但是…有一个简单的方法来debugging节点,找出什么代码/事件/callback/连接或什么的,这是等待?
我已经看了一下node-inspector,但是我不知道如何查找任何可以打开的东西。 有什么build议?
你可以使用wtfnode运行你的node.js程序,或者添加require('wtfnode').init();
在第一行或你的程序。 然后,当你按ctrl + c来杀死进程时,它将打印所有保持节点打开状态的列表。
当我遇到这种情况时,最常见的就是mongodb,amqp等。这就是数据库连接,networking连接。 确保你完成处理后closures这些。
我想你可以使用lsof -p <PID>
,看看有什么说的。 在那里我可以看到mongodb和amqp。
在你期望它closures添加点
console.log(process._getActiveHandles());
你也可以添加一个处理程序
process.on('SIGINT', () => console.log(process._getActiveHandles()) );
所以如果节点没有正确closures,Ctrl + C会告诉你为什么。
- Sails.js + Mongodb使用ORM插入一个嵌套的jsonlogging
- 使用node.js中的XSLT样式表将xml转换为html
- 如何设置connect-multiparty上传文件的名称?
- 我在哪里可以在Meteor 1.3中安装npm包,以便其他npm库可以要求它
- 分享sequalize模型的最佳方法
- 在更改CouchBase服务器的IP后如何找回数据库
- Express / torrent-stream:从stream中写入文件,使用url将套接字发送给客户端,但客户端无法find文件
- 我怎么能写一个数组到一个文件在nodejs并保留方括号?
- 执行node.js而不使用命令提示符(winform或javascript)?