我开发了一个node.js
应用程序。然而,在某个阶段,应用程序应该自然关闭。我可以看到它通过console.log()
消息到达最终指令。
然而,Netbeans告诉我它仍在运行。虽然我已经结束了与数据库的连接,但仍然保留了应用程序。我的想法已经不多了。
如何找出阻止我的应用程序关闭的原因?
更新
以下是我使用的模块列表:
"dependencies": {
"async": "0.9",
"body-parser": "1.4.3",
"clean-css": "2.1.8",
"cookie": "0.1.2",
"cookie-parser": "1.1.0",
"crypto-js": "3.1.2-3",
"csurf": "1.2.0",
"emailjs": "0.3.6",
"express-session": "1.2.1",
"express": "4.3.1",
"html-minifier": "0.6.1",
"markup-js": "1.5.18",
"node-fs": "0.1.7",
"node-fs-extra": "0.8.1",
"pem": "1.4.1",
"pg": "3.2.0",
"readdirp": "1.0.1",
"st": "0.4.1",
"utils-merge": "1.0.0",
"validator": "3.12.0",
"yuicompressor": "2.4.8"
}
答案 0 :(得分:1)
有一些未记录的函数可以帮助您稍微确定一下:process._getActiveRequests()
和process._getActiveHandles()
。它们分别返回一组活动请求(例如网络请求)和活动句柄(/文件描述符)。
在节点v0.11 +中有一个名为AsyncListener的新(记录)API,它也可以帮助您跟踪异步请求。
答案 1 :(得分:0)
我发现的最常见问题是你的超时没有执行。由于清除这些并不总是实用的,您可能需要强制退出程序:
process.exit(0)