CNode

app.listen和server.listen的端口不一样是为什么?

问答
Eerwenzhang发布于11 年前最后回复11 年前12 回复10476 浏览0 收藏

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

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

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

谢谢!!

查看回复

回复 (12)

E
erwenzhang#2·11 年前
引用 jyspermhttps://github.com/strongloop/express/blob/531f024e486c13eb6d7e2bc0966ea95b1567197a/lib/applicat...

@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?

J
jysperm#3·11 年前

是的

E
erwenzhang#4·11 年前
引用 jysperm是的

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

Q
qq290584697#5·11 年前
引用 erwenzhang@jysperm 那如果没有最后server.listen(3004),server listen是哪个端口呢? 3001? app.listen 是http的服务器, server是http...

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

E
erwenzhang#6·11 年前
引用 qq290584697@erwenzhang listen是监听啊,你监听了两个啊,少年。如果没有listen,那就完全木有监听啊

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

S
songqinghehe#7·11 年前

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

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

竟然可以都能访问到,

S
songqinghehe#9·11 年前
引用 erwenzhang@songqinghehe 试了一下,也是,看来能监听多个了..

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

Q
qq290584697#10·11 年前
引用 songqinghehe@erwenzhang 对的,我也看了你这个问题才去试验了一下

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

参与回复
登录后即可参与回复。登录