據我瞭解,require('express')()
不創建一個服務器,它只是捆綁的功能結合在一起。但如果是這樣,下面的代碼如何運行,而沒有服務器?什麼要求(「表達」)()做的NodeJS
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.listen(3000, function() {
console.log('Example app listening on port 3000!')
})
而且,如果它創建一個服務器,爲什麼我需要進口http
模塊和手動創建在下面的例子中的服務器?
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
我很困惑。提前致謝。
第二個示例使用'http',因爲它也使用'socket.io',它需要一個'http'服務器。您可以使用快速應用程序實例化這樣的http服務器,這就是所做的事 – devnull69
第一個示例不需要http服務器嗎? – SKG
它從一個快速應用程序創建一個HTTP協議服務器,但它不使用'http'模塊中的'Server'作爲它,而第二個例子確實(並且需要) – devnull69