app.listen和server.listen的端口不一样是为什么?
发布于 10 年前 作者 erwenzhang 9901 次浏览 最后一次编辑是 8 年前 来自 问答

在一个运行正常的应用里看到的代码如下: app = express(); app.listen(3001);

var server = https.createServer(options, app); server.listen(3004);

但是之前看到的代码都是没有server.listen(3004)的,现在app listen的是哪个?为什么要这么写呢?

谢谢!!

12 回复

@jysperm 我知道app.listen=function(port) { http.createServer(this).listen(port) }; app.listen(3001) create a server listening to 3001. So server.listen(3004) is another server?

@jysperm 那如果没有最后server.listen(3004),server listen是哪个端口呢? 3001? app.listen 是http的服务器, server是https的服务器.好像明白点了.2个不同的server.

@erwenzhang listen是监听啊,你监听了两个啊,少年。如果没有listen,那就完全木有监听啊

@qq290584697明白啦,是两个不同的监听,一个是http的,一个是https的.

var app = express(); app.listen(3000); app.listen(4000);

http://localhost:3000/ http://localhost:4000/

竟然可以都能访问到,

@songqinghehe 试了一下,也是,看来能监听多个了…

@erwenzhang 对的,我也看了你这个问题才去试验了一下

@songqinghehe nodejs是异步的,当然可以监听多个啊

回到顶部