如何在没有"DEBUG = node:*./bin/www"的情况下使用Express 4运行应用程序

LIA*_*IAL 3 node.js express phpstorm express-4

我正在学习Node.js + Express 4并命令运行我的应用程序看起来如此:

$> DEBUG = node:*./bin/www

这个命令是做什么的?

如何像这样运行我的应用程序:

$> node app.js

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

Nie*_*els 5

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

现在我们已经掌握了基础知识,我相当肯定你使用快速生成器来创建你的应用程序.这确实告诉你使用DEBUG=node:* ./bin/www.运行你的应用程序.在./bin/www/简单地运行www在/ bin文件夹中的文件.这本质上是一个带有节点hashbang的javascript文件,它从中导入应用程序实例app.js并启动它的http服务器,它开始监听事件.该DEBUG={name}:*命令由npm debug npm调试链接使用.它只是告诉包应该使用哪些调试功能.该*是一个通配符:使用所有这些所有的(见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')
})
Run Code Online (Sandbox Code Playgroud)

提示如果你只是不喜欢输入命令,因为它太长了我建议你把它添加到你的脚本部分package.json.

'scripts': {
    'start': 'DEBUG=node:* ./bin/www'
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用它来运行它 npm start