当前位置: 首页 > 知识库问答 >
问题:

什么文档描述了传递给express App.Method回调参数的内容

长孙文栋
2023-03-14

我对javascriptnodejs一无所知,有时无法理解回调函数。我发现最让人困惑的是找到什么参数(或者应该叫参数吗?)传递到回调函数中。

请考虑以下示例

app.get('/', function (req, res) {
  res.send('GET request to homepage');
});

如果我理解正确的话,我可以将函数中的参数名称更改为其他的东西(例如,a,b而不是req,res),并且它仍然将分别包含request和response对象。

app.get('/', function (a, b) {
  b.send('GET request to homepage');
});

这是因为app.get方法/函数将它的第二个参数定义为一个回调函数,而什么参数将作为参数传递给该回调函数,对吗?

如果上面是真的,我只是在Express API文档中找不到描述该方法/函数的回调函数参数传递内容的文档。事实上,我几乎找不到文档来描述对于许多其他方法/函数传递到回调中的内容。我在哪里可以找到这些信息?我看错了信息是因为我弄错了一些术语吗?

共有1个答案

索瀚海
2023-03-14

对于那些正在访问这个三年前的老问题并希望得到答案的人(就像我一样),我希望下面的答案能启发你的心情;)

  • 平均回调(中间件函数)有三个参数(即req、res、next)
    • https://expressjs.com/en/guide/writing-middleware.html
    • https://expressjs.com/en/guide/error-handling.html#writing-error-handlers

    编写错误处理程序
    以与其他中间件函数相同的方式定义错误处理中间件函数,只是错误处理函数有四个参数,而不是三个:(err,req,res,next)。例如:

    app.use(function (err, req, res, next) {
      console.error(err.stack)
      res.status(500).send('Something broke!')
    })
    

    如果您为Express API使用TypeScript,则需要显式键入所有参数,否则编译器将隐式键入参数到Any,并在转换过程中崩溃。

    app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
      console.error(err.stack)
      res.status(500).send('Something broke!')
    })
    

 类似资料:
  • 问题内容: 在猫鼬文档中,它经常列出某些查询运算符(如)的可选回调,但是,它没有提及回调采用的参数(参数)。他们是什么,我怎么知道? 另外,如果,等都是可选的,我想在结束时指定一个回调,我必须在传递值,或空物体或我可以只指定回调- 和软管做猫鼬知道吗? 问题答案: 对于几乎所有的猫鼬查询,所提供的函数将在文档中所述的节点回调模式 中用两个参数调用: 在Mongoose中将回调传递给查询的任何地方,

  • 问题内容: 我正在尝试将一些参数传递给用作回调的函数,该怎么做? 问题答案: 如果您想要更一般的东西,可以使用arguments变量,如下所示: 但是否则,您的示例可以正常工作(可以在测试器中使用arguments [0]代替回调)

  • 问题内容: 我有以下功能。WordPress功能,但这实际上是一个PHP问题。它们根据每个对象的元数据中的属性对我的对象进行排序。 我想在第一个函数中传递一个字符串。这将使我可以重复使用此代码,因为我可以将其应用于各种元数据属性。 但是我不明白如何将 额外的 参数传递给usort回调。我试图制作一个JS风格的匿名函数,但是服务器上的PHP版本太旧,并引发了语法错误。 非常感谢您提供的任何帮助-或将

  • 问题内容: 有没有办法将更多数据传递到jQuery中的回调函数中? 我有两个函数,例如,我希望回调到,以传递AJAX调用的结果数据以及一些自定义参数 我希望能够将自己的参数以及AJAX调用返回的结果传递给回调。 问题答案: 解决方案是通过闭包绑定变量。 作为一个更基本的示例,下面是一个示例函数,该函数接收并调用一个回调函数,以及一个示例回调函数: 这将调用回调并提供一个参数。现在,您想提供一个附加

  • 问题内容: 我有一些如下的JavaScript代码: 我收到未定义的错误,在使用该功能之前,一切都在工作。 我希望一段时间后调用我的函数。我该怎么办? 问题答案: setTimeout(function() { postinsql(topicId); }, 4000) 您需要将匿名函数作为参数而不是字符串作为参数,后一种方法甚至不符合ECMAScript规范,但浏览器比较宽松。这是正确的解决方案,

  • 问题内容: 将参数传递到匿名onreadystatechange回调的普通纯JavaScript(即非JQuery)方法是什么? 例如: 问题答案: Javascript支持闭包,因此您编写的匿名函数将能够从封闭范围访问和访问。 如果要显式地执行此操作(例如,如果要在代码中的其他位置定义回调函数并重用它),则可以创建一个函数来创建回调。这也使您可以使用不同的名称(例如和)来对变量进行别名别名: 然