2015-11-02 54 views
1

我正在Windows机器上的端口3000(http://localhost:3000)上运行使用node.js express框架的应用程序。另外我想在不同的端口上运行另一个(第二个)应用程序,比如3005或8080等。在我的第一个应用程序中,我没有指定任何端口号,我相信默认情况下expressjs在端口3000上运行。但是在第二个应用程序中,编号app.listen(8080)在我的app.js.当我试图启动第二个应用程序时我得到端口3000已在使用错误。所以我停止了第一次应用程序,然后只能运行第二个应用程序,它也在3000和8080端口上运行。我不明白为什么它仍然在3000上运行,我仍然在app.js中指定了8080端口号。在nodejs express框架的不同端口上运行多个应用程序

可以在任何一个有利于在同一实例运行在不同的端口都应用

感谢

+0

尝试通过任何方式找到哪个进程/服务/应用程序在端口3000上运行...通过在Windows终端中编写命令。与Windows命令提示符类似:netstat -n .. 。如果你没有找到(端口号与进程),然后尝试一些其他命令,将给你(端口号与进程)info – vijay

回答

1

我相信在端口expressjs默认运行3000

这是真的,但你可以更改。

我想你运行快速默认样板应用程序。 在这种情况下,您应更新bin/www中的行var port = normalizePort(process.env.PORT || '3000');

+0

@Farkan Basaran:我们可以重写相同的app.js而不更改www文件? – Praveen

+1

当然可以!你应该在'app.js'文件的'module.exports = app;'之前添加这行'process.env.PORT = 8080;'。 –

1

它改变www文件中的端口号后工作。 www文件位于在环境设置期间创建的bin文件夹中。

2

如果您使用express generator还要检查在bin文件夹,这可能包含了部分similier这个www的文件:

var port = normalizePort(process.env.PORT || '3000'); 
app.set('port', port); 

改变“3000”部分的端口,你的愿望,并应按预期运行。

2

最后在cmd行中更改端口使用“PORT = 4000节点app/app.js”。 端口号可以更改为任何其他端口号。 5000,6000 etc ...

+0

抱歉无意中降低了您的答案(也许我的手在触摸板上?)。如果我尝试撤消,我会收到消息“您的投票现在被锁定,除非此答案被编辑。”你可以编辑你的答案(也许等三个点),以便我可以撤消downvote?我很抱歉,特别是因为它似乎是你在SO上的第一篇文章。 – maij

相关问题