我正在学习Node.js + Express 4并命令运行我的应用程序看起来如此:
$> DEBUG = node:* ./bin/www
这个命令是做什么的?
如何像这样运行我的应用程序:
$> node app.js
PS:我需要在phpStrom下运行,不能在配置第一个命令中设置。
答案 0 :(得分:5)
首先,我认为重要的是要了解一个Express应用程序只是一个正在侦听某个端口的启动的 Express应用程序对象(参见ex1)。在这个示例的第一行,您可以看到所谓的linux hashbang or shebang
,它是一行告诉您的shell应该使用哪种解释器来执行以下文件。因此,可以使用节点hashbang创建一个文件,删除.js扩展名仍然可以使用./{myscript}
执行它。其中./使其运行。
现在我们已经掌握了基础知识,我相当肯定你使用了快速生成器来创建你的应用程序。这确实告诉您使用DEBUG=node:* ./bin/www
运行您的应用。 ./bin/www/
只运行/ bin文件夹中的www
文件。这本质上是一个带有节点hashbang的javascript文件,它从app.js
导入app实例并在其上启动和http服务器,它开始监听事件。 DEBUG={name}:*
npm debug link使用npm debug
命令。它只是告诉包应该使用哪些调试功能。 *
是一个通配符:全部使用它们(有关信息,请参阅npm debug package docs)。
#!/usr/bin/env node
var express = require('express')
var app = express()
app.get(function(req, res) {
res.send('Hello')
})
app.listen(8080, function(){
console.log('Server started on port:8080')
})
提示如果您只是不想输入命令,因为它太长了我建议您将其添加到package.json
的脚本部分。
'scripts': {
'start': 'DEBUG=node:* ./bin/www'
}
然后,您可以使用npm start
答案 1 :(得分:1)
如果有人和我有同样的问题,我发布的答案我发现:
./ bin / www - 是包含你的app.js文件和http服务器创建的linux可执行文件。 现在,您可以在没有“节点”的情况下运行您的应用程序,只需编写./bin/www并单击“输入”。
DEBUG = node:* - 不确定它是如何工作的,对我来说它只是开始调试模式(我只是剪掉了这个)
要在配置设置中运行phpStrorm,而不是.js文件写./bin/www,这样你就可以在phpStorm调试环境中运行你的应用程序了。