如何启用调试 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.json
和 npm 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)