带有 http.createServer 的服务器和在节点 js 中使用 express 的服务器之间的区别
Posted
技术标签:
【中文标题】带有 http.createServer 的服务器和在节点 js 中使用 express 的服务器之间的区别【英文标题】:Difference between a server with http.createServer and a server using express in node js 【发布时间】:2016-05-12 02:31:50 【问题描述】:在 node js 中使用 http 模块创建服务器和使用 express 框架创建服务器有什么区别? 谢谢。
【问题讨论】:
您真正要问的是为什么要使用 Express 框架而不是仅使用 http 模块。基本上,您可以阅读有关 Express 框架的功能并决定其中任何一个是否对您有用。它是 http 模块的超集。 我其实是node新手。 Express.js - app.listen vs server.listen的可能重复 考虑到问题的公共利益,回答非常粗鲁 【参考方案1】:最终,express 在幕后使用节点的http api。
表达框架
express 框架在 vanilla http 模块之上提供了一个抽象层,可以更轻松地处理 Web 流量和 API。还有大量的中间件可用于 express(和 express-like)框架来完成常见任务,例如:CORS、XSRF、POST 解析、cookie 等。
http 接口
http api 非常简单,用于设置和管理传入/传出、HTTP 连接。 Node 在这里完成了大部分繁重的工作,但它确实提供了您在大多数 Node Web 框架中通常会看到的东西,例如:request
/response
对象等。
【讨论】:
【参考方案2】:Express 在底层使用 http 模块,app.listen()
返回一个 http 实例。如果您需要使用 HTTPS 为您的应用程序提供服务,您可以使用 https.createServer
,因为 app.listen
仅使用 http 模块。
这是app.listen
的source,因此您可以看到相似之处。:
app.listen = function()
var server = http.createServer(this);
return server.listen.apply(server, arguments);
;
【讨论】:
以上是关于带有 http.createServer 的服务器和在节点 js 中使用 express 的服务器之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
Node.js http.createServer 简单服务配置
用 http.createServer 或 app = express() 调用 express 有啥区别?
NodeJS:http.createServer 和 express.createServer 之间的区别? [关闭]