gpt4 book ai didi

javascript - 使用 'app' 作为请求处理程序创建服务器?

转载 作者:行者123 更新时间:2023-12-03 05:54:30 24 4
gpt4 key购买 nike

在简单的 NodeJS 中,我们可以使用 - 创建服务器

http.createServer(function(req,res) { /* header etc. */});

但是我开始使用express并且服务器是自动创建的。然后我继续学习套接字,但是 socket.io 需要将 http 服务器作为参数传递来创建套接字连接。现在创建我使用的服务器 -

http.createServer(app);

这是否意味着 app = require('express')(); 实际上返回一个请求处理函数?到底发生了什么?

最佳答案

是的。它实际上返回一个接受 (request, response, next) 的函数,这是中间件原型(prototype)之一。本质上,express 模块导出一个名为 createApplictaion 的函数,该函数返回一个中间件处理程序。 Here is the current source对于 express ,您可以自由浏览。

exports = module.exports = createApplication;

/**
* Create an express application.
*
* @return {Function}
* @api public
*/

function createApplication() {
var app = function(req, res, next) {
app.handle(req, res, next);
};

mixin(app, EventEmitter.prototype, false);
mixin(app, proto, false);

app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
app.init();
return app;
}

关于javascript - 使用 'app' 作为请求处理程序创建服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39995830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com