[英]Using both http-server and node express server
我已經看到了節點快速服務器的以下設置:
server.js
import { Server } from 'http';
import Express from 'express';
const app = new Express();
const server = new Server(app);
由於可以直接運行express,因此將express服務器作為http服務器的參數返回的好處是什么?
Express是HTTP服務器的請求處理程序。 它需要一個HTTP服務器才能運行。 您可以自己創建一個,然后將app
作為該請求處理程序傳遞給app
程序,或者Express可以創建自己的HTTP服務器:
import Express from 'express';
const app = new Express();
app.listen(80);
但是,這樣您就完全了解這里發生了什么。 如果您使用app.listen()
,那么它就是這樣做的(如Express代碼所示):
app.listen = function listen() {
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
這只是創建自己的.listen()
http服務器,然后在其上調用.listen()
。
如果您僅使用普通的普通http服務器,那么它會為您節省一些代碼來讓Express為您創建它,因此為您自己創建它實際上沒有任何好處。 如果要創建具有某些特殊選項或配置的服務器,或者要創建HTTPS服務器,則必須自己創建一個服務器,然后使用Express請求處理程序對其進行配置,因為Express僅在創建普通香草http服務器時才使用要求它自己創建。 因此,如果需要使用特殊選項進行創建,請自己創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.