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不适合你,请尝试更改端口。 它可能正在用于其他节点实例。