启用节点的调试运行,并在forever中运行

当开发Node.js时,为了进行调试执行,需要在调试模式下运行Node,但在使用forever运行Node的环境中进行了相应的配置。

另外,以下是在Visual Studio Code中调试Node.js的方法:
在Visual Studio Code中调试远程服务器上的Node.js。
您也可以使用Chrome浏览器和Chrome调试协议进行调试。

环境- Environment

macOS 10.12.6 (Sierra)、Node.js: 7.10.1、npm: 4.2.0

准备好

    • デバックしたいNodejsがforeverで稼働していること。

 

    リモートサーバー等ローカル以外で稼働している場合、対象サーバーの下記で設定するデバッグ用のポートが開放されていること。

Node.js的调试配置

在Node.js中,独立运行调试的命令如下所示:

node --inspect[=[host:]port]

如果不指定[主机:]端口,默认设置为127.0.0.1:9229。

如果你想要在本地以及其他服务器上调试正在运行的节点,你需要在[=[host:]port]处设置连接源的IP地址和端口,例如192.168.33.10:9229。
另外,如果没有特定IP限制的话,设置如下所示。
(我认为在生产服务器上你应该不会使用调试模式,所以请小心)

node --inspect=0.0.0.0:9229

开机后会显示以下类似的日志。

Debugger listening on port 9229.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
    chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=0.0.0.0:9229/bd58f05d-b341-4d0f-8a31-03640a747d62

若出现类似的日志,则可以开始进行调试准备。
※启动日志中有实验性功能的说明。未来的规格可能会发生变化。
另外,您可以通过使用所提供的URL在Chrome中进行调试。(IP部分需要更改为运行服务器的地址)

永远设置nodejs的调试配置。

在启动 forever 时会指定上述设置。通常情况下启动 forever。

forever start app.js

指定的是只有在js文件中指定了“forever”的动作和入口点的情况下。

使用forever选项-c,可以指定带选项的节点来进行这个操作。

forever -c 'node --inspect=0.0.0.0:9229' app.js

以此设置,节点将以带有检查选项的方式运行。
同时还可以使用日志文件的指定等功能。
下面是添加了forever文件监视选项、节点日志文件指定和调试模式设置的示例。

forever -w -l /var/log/node/forever.log -c 'node --inspect=0.0.0.0:9229' app.js

如果在package.json的start项上指定,则如下所示。
※下面的路径是加上模块路径的,因为没有全局安装forever。

{
  "name": "manjii_app",
  "scripts": {
    "start": "NODE_ENV=development node_modules/forever/bin/forever -w  -l /var/log/node/forever.log -c 'node --inspect=0.0.0.0:9229' server.js"
  },
  "dependencies": {
    "express": "4.13.3",
  }
}

另外,使用上述资源的示例可以在以下位置找到:
https://github.com/manjiii/Vagrant-samples/tree/master/Skeleton-nginx-nodejs-mongodb

参考网站

Node.js官方文档
Node.js v8.5.0 文档
※虽然标注为8.5.0,但–inspect选项似乎可以从v6.3.0开始使用。
GitHub上的forever官方文档
foreverjs/forever

广告
将在 10 秒后关闭
bannerAds