Javascript 为什么使用http模块将端口设置为app.listen也设置端口?

Javascript 为什么使用http模块将端口设置为app.listen也设置端口?,javascript,node.js,http,express,server,Javascript,Node.js,Http,Express,Server,通过使用上述代码,我们可以设置node.js端口。 但有时我发现在许多网站上,人们使用http模块来设置nodejs端口 var express = require("express"); var app = express(); // sets port 8080 to default or unless otherwise specified in the environment app.set('port', process.env.PORT || 8080); app.get('/'

通过使用上述代码,我们可以设置node.js端口。 但有时我发现在许多网站上,人们使用http模块来设置nodejs端口

var express = require("express");
var app = express();

// sets port 8080 to default or unless otherwise specified in the environment
app.set('port', process.env.PORT || 8080);

app.get('/', function(req, res){
    res.send('hello world');
});

// Only works on 3000 regardless of what I set environment port to or how I set
// [value] in app.set('port', [value]).
// app.listen(3000);
app.listen(app.get('port'));

有人会告诉你什么时候使用哪个代码吗?

使用
app。当你使用“express”节点模块时,请收听
功能


当您使用“连接”节点模块时,请使用http.createServer(app)。侦听
功能。

这是一个偏好问题。express在后台使用http模块。
http.createServer(app).listen(app.get('port'),
  function(){
    console.log("Express server listening on port " + app.get('port'));
});