3

我正在学习 Node.js + Express 4 和运行我的应用程序的命令如下所示:

$>DEBUG=节点:* ./bin/www

这个命令是做什么的?

我怎样才能像这样运行我的应用程序:

$>节点app.js

PS:我需要在phpStrom下运行,不能在配置第一命令中设置。

4

2 回答 2

6

首先,我认为重要的是要了解 Express 应用程序只不过是一个正在侦听某个端口的已启动Express 应用程序对象(参见 ex1)。在这个例子的第一行,你可以看到所谓的 a linux hashbang or shebang,它告诉你的 shell 它应该使用哪种解释器来执行以下文件。因此,可以使用节点 hashbang 创建文件,删除 .js 扩展名,仍然可以使用./{myscript}where ./ 使其运行来执行它。

现在我们已经掌握了基础知识,我相当肯定你使用了 express-generator 来创建你的应用程序。这确实告诉您使用DEBUG=node:* ./bin/www. ./bin/www/只需运行www/bin 文件夹中的文件。它本质上是一个带有节点 hashbang 的 javascript 文件,它从中导入应用程序实例app.js并在其上启动和 http 服务器,它开始侦听事件。该DEBUG={name}:*命令由npm debug npm debug link使用。它只是告诉包它应该使用哪些调试功能。作为*通配符:全部使用它们(有关信息,请参阅 npm 调试包文档)。

#!/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

于 2015-02-25T21:02:23.297 回答
1

如果有人和我有同样的问题,我会发布我找到的答案:

./bin/www - 是包含您的 app.js 文件和 http 服务器创建的 linux 可执行文件。现在您可以在没有“节点”的情况下运行您的应用程序,只需编写 ./bin/www 并单击 Enter。

DEBUG=node:* - 不确定它是如何工作的,对我来说它只是切换到调试模式(我只是剪掉了这个)

要在配置设置中在 phpStrorm 中运行,而不是 .js 文件写入 ./bin/www,这样您就可以在 phpStorm 调试环境中运行您的应用程序。

于 2015-02-03T10:28:49.507 回答