nodemon + express,listen port =?

我使用express创build一个简单的节点项目:

npm install -g express-generator express test cd test/ && npm install PORT=3000 npm start 

所以这个testing应用程序在3000端口上运行。非常好。 现在我想用nodemon来运行这个项目。 我已经安装了它:

 npm install -g nodemon 

在gihub自述文件中,它以与节点相同的方式运行。 这有点混乱,因为启动节点的新方法是npm start not node 。 所以我试了一下:

 $ PORT=3000 nodemon ./app.js 13 May 23:41:16 - [nodemon] v1.0.18 13 May 23:41:16 - [nodemon] to restart at any time, enter `rs` 13 May 23:41:16 - [nodemon] watching: *.* 13 May 23:41:16 - [nodemon] starting `node ./app.js` 13 May 23:41:16 - [nodemon] clean exit - waiting for changes before restart 

但是当我尝试连接时,那里什么也没有。 我确认:

 lsof -i TCP:3000 

哪一个没有返回。 通常(使用npm start )它返回:

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 18746 user 10u IPv4 433546 0t0 TCP *:3000 (LISTEN) 

任何人都可以告诉这是什么错误? 如何让应用程序在nodemon上监听指定的端口?

我的设置:

 npm -v 1.3.21 node -v v0.10.24 nodemon -v v1.0.18 express -V 4.2.0 

package.json中

  "scripts":{ // "start": "node ./bin/www" "start": "nodemon ./bin/www" } 

下面现在是等价的:

 $ npm start $ nodemon ./bin/www 

这也适用:将它包含在你的app.js中(它和neolivz4ever所说的一样)

 app.set('port', process.env.PORT || 3000); var server = app.listen(app.get('port'), function() { console.log('Express server listening on port ' + server.address().port); }); 

你也可以使用define你的nodemon:

$ nodemon --debug ./bin/www 3000

此外,有些时候,港口正在使用。 如果其他解决scheme不适合你,请尝试更改端口。 它可能正在用于其他节点实例。