簡體   English   中英

同時使用http服務器和節點快速服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM