Node.js中使用http.createServer创建服务器和使用express框架创建服务器的区别

49
使用http模块创建服务器和使用Express框架创建服务器在Node.js中有什么区别?谢谢。

1
你真正想问的是为什么要使用Express框架而不是仅使用http模块。基本上,你可以阅读有关Express框架的功能,并决定其中是否有任何对你有用的功能。它是http模块的超集。 - jfriend00
我其实是一个 Node 的新手。 - Koushik Das
1
可能是Express.js - app.listen vs server.listen的重复问题。 - Shaishav Jogani
23
考虑到问题的公共利益,回答非常粗鲁。 - Mr-Programs
2个回答

49

最终,express 在幕后使用Node的http API

express框架

Express框架提供了一个抽象层,使得处理Web流量和API更加容易。此外,还有大量的中间件可用于Express(和类似Express的)框架,以完成常见任务,例如:CORS、XSRF、POST解析、Cookies等。

http API

http API非常简单,用于设置和管理传入/传出的HTTP连接。Node在这里做了大部分的重活,但它确实提供了你在大多数Node Web框架中经常看到的一些对象,例如:request/response等。


35
Express在底层使用http模块,app.listen()返回一个http实例。如果您需要使用HTTPS服务应用程序,则需要使用https.createServer,因为app.listen仅使用http模块。
以下是app.listen源代码,您可以看到它们的相似之处:
app.listen = function(){
  var server = http.createServer(this);
  return server.listen.apply(server, arguments);
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接