如何启用调试 express.js/node.js 应用程序

Posted

技术标签:

【中文标题】如何启用调试 express.js/node.js 应用程序【英文标题】:How to enable debugging express.js/node.js application 【发布时间】:2017-07-29 01:34:22 【问题描述】:

我正在窗口环境中处理 express.js。我已经使用npm start 成功启动了我的项目。现在我需要在package.json 文件中添加调试语句来启用调试。

像这样:

"scripts": 
  "start": "DEBUG=fibonacci:* node ./bin/www"

在我编辑 package.jsonnpm start 命令后,我遇到了错误:

Error: Debug is not an internal or external command

注意:我正在关注 Node.js 书,并且在书中它成功执行。

【问题讨论】:

【参考方案1】:

使用 nodemon,在 Windows 上:

"scripts": 
  "start": "SET \"DEBUG=express:*\"&& nodemon ./bin/www"
,

【讨论】:

【参考方案2】:

我的做法:

set DEBUG=your_project:* & npm start

【讨论】:

【参考方案3】:

在 npm 脚本中设置环境变量是特定于平台的。

在 Windows 上:

"start": "set DEBUG=fibonacci:*&& mocha --reporter spec"

在 Unix / macOS 上:

"start": "DEBUG=fibonacci:* mocha --reporter spec"

我建议使用cross-env (npm i -D cross-env),它可以处理这些差异并适用于所有平台:

"start": "cross-env DEBUG=fibonacci:* mocha --reporter spec"

【讨论】:

【参考方案4】:

上面的答案是正确的,但它们只是基于 cmd 会话,如果我们关闭 cmd,那么我们需要再次设置调试变量。 经过一番调试,我找到了正确的方法

"scripts": 
  "start": "set DEBUG=fibonacci:* & node ./bin/www"

我们只需要将 set 命令放入 package.json 文件本身,这样你就可以像端口一样存储尽可能多的变量。

【讨论】:

【参考方案5】:

我认为您必须将 DEBUG 设置为环境变量

set DEBUG=you_application

【讨论】:

这样工作...但它暂时,我的意思是关闭并启动命令提示符我需要再次设置它。有什么方法可以通过编辑 package.json 来工作??? 如果您从控制台尝试:1. cd 在您的应用程序中 2. npm install 3. 设置 DEBUG=app 4. npm start 它不应该是临时的... 但是,他每次打开新的 CMD 窗口时都必须重复这些步骤,对吧? 使用 WebStorm,我从编辑配置中设置此变量... " - 单击对话框中的“环境变量”。 - 在“系统变量”框中,搜索路径并编辑它以包含 C:\Program Files\nodejs 。 我不确定添加路径 C:\Program Files\nodejs 后会有什么帮助,但我试过了,但它不起作用

以上是关于如何启用调试 express.js/node.js 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 passport.js 和 express.js (node.js) 制作安全的 oauth API

CRUD op Express.js Node.js Mysql 无法使用 MVC 插入

Image Magick Module 抛出奇怪的错误(Express js Node js)

express.js 中的中间件功能范围

Node.js:将 Android-Base64 编码图像另存为文件

HTTP 补丁 XmlHttpRequest 支持