使用http-server和node express服务器

我已经看到了一个节点快递服务器的以下设置:

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服务器才能运行。 您可以自己创build一个,然后将app作为请求处理程序或Express来创build它自己的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); }; 

它只是创build自己的香草http服务器,然后调用.listen()


如果你只是使用一个普通的香草http服务器,那么它会为你节省一些代码让Express为你创build它,所以你自己创build它真的没有任何好处。 如果您想要创build一个具有特殊选项或configuration的服务器,或者要创buildHTTPS服务器,则必须自己创build一个服务器,然后使用Express请求处理程序对其进行configuration,因为如果您使用Express,Express只会创build一个普通的香草http服务器要求它自己创造它。 所以,如果你需要用特殊的选项来创build一个你自己创build的。