NodeJS 类似< Function>于(req,res)

oknwwptz  于 2023-06-29  发布在  Node.js
关注(0)|答案(2)|浏览(126)

我是nodejs的新手。参考此链接部分http.createServer([options][, requestListener])我知道如何创建options对象.但是对于[, requestListener],文档中说明它是<Function>。当我点击<Function>的链接是here时,它表明<Function>是一个正常的函数,可能是lambda,然而,在第一个链接中所述的http.createServer([options][, requestListener])的文档中,它演示了以下内容:

http.createServer((req, res)

据我所知,(req, res)是两个不同的回调,在某种程度上不是普通的<Function>。我有点糊涂了。
1.请告诉我(req,res)<Function>的区别
2.其中在文档(req,res)中解释。我想知道如何配置或访问reqres的属性

f0brbegy

f0brbegy1#

你误解了代码。(req, res)不是createServer的参数。这整个就是一个arrow function expression,一种定义匿名函数的方法:

(req, res) => {
  res.writeHead(200, { 'Content-Type': 'application/json' });
  res.end(JSON.stringify({
    data: 'Hello World!',
  }));
}

它在很大程度上(但不完全)等同于:

function serverHandler(req, res) {
  res.writeHead(200, { 'Content-Type': 'application/json' });
  res.end(JSON.stringify({
    data: 'Hello World!',
  }));
}

不同之处(这里并不重要,但为了完整起见)是:后者可以是函数表达式或函数语句,而前者总是表达式;前者不重新定义this,而后者重新定义;并且前者不被分配给变量,而后者可以是(在这种情况下为serverHandler)。
对于serverHandler的后一种定义,您可以如下使用它:

http.createServer(serverHandler)

在后一个示例中,匿名箭头函数表达式与函数标识符的作用相同。

编辑有关reqres的更多文档:

根据createServer的文档:
requestListener是自动添加到'request'事件的函数。
根据'request'事件的文档,事件回调获取两个参数:requestIncomingMessage的示例,以及responseServerResponse的示例。

uidvcgyl

uidvcgyl2#

回调的reqres参数与相应request事件的requestresponse属性相同。

事件:'request'

版本:v0.1.0

  • request<http.IncomingMessage>
  • response<http.ServerResponse>

然后,您可以通过这些数据类型的文档链接查看如何在服务器中使用它们。

相关问题