Javascript 作为函数参数的一个或多个函数(可选)

Javascript 作为函数参数的一个或多个函数(可选),javascript,Javascript,关于下面显示的Express app.post函数,我试图找到使用一个或多个回调函数作为app.post函数参数的背后的文档 我研究过网络,了解了spread运算符背后的概念,了解它意味着第二个回调函数或更多,但在方括号[]上找不到任何教程/参考,作为“可选”多个函数的语法 app.postpath,回调[,回调…] 我希望了解或找到关于以下内容的清晰参考/教程: 解释[]语法的参考 回调传递的执行顺序是什么,所以假设我将其称为app.post….,callback1,callback2; ca

关于下面显示的Express app.post函数,我试图找到使用一个或多个回调函数作为app.post函数参数的背后的文档

我研究过网络,了解了spread运算符背后的概念,了解它意味着第二个回调函数或更多,但在方括号[]上找不到任何教程/参考,作为“可选”多个函数的语法

app.postpath,回调[,回调…]

我希望了解或找到关于以下内容的清晰参考/教程:

解释[]语法的参考

回调传递的执行顺序是什么,所以假设我将其称为app.post….,callback1,callback2; callback1和callback2是否会同时被调用?还是在callback1返回后调用callback2

callback1返回的结果是否会作为参数传递给callback2,而不考虑callback2的参数


感谢您的帮助和时间

1这是一个可选参数。您可以像括号中的参数将在那里一样调用它,也可以像括号中的参数不存在一样调用它。所以

 method(a, [b, c])
 // Could be either called as
 method(a)
 // or as
 method(a, b, c)
2 callback2在调用callback1的第三个参数next时执行,callback3在调用callback2的next时执行,依此类推

3不,所有中间件都将请求作为第一个参数接收,响应作为第二个参数接收,下一个函数作为第三个参数接收

这些附加回调的用例是仅向某些端点添加中间件:

  function isAdmin(req, res, next) {
    if(/*some checks*/) {
      next(); // Go to next middleware
    } else {
      res.status(402).send("Not authenticated!");
    }
 }

  app.post("/secret", isAdmin, function(req, res, next) {
    //...
  });

关于2和3不确定,但[]可能意味着arrayNo,@chris,正如OP所说的可选。感谢您的帮助,因此在第3点,这意味着在Callback1中调用next时,Callback2将收到调用Callback1作为Callback2 res参数的结果,对吗?换句话说,假设这些不是回调函数,而是常规函数app.postpath,function1[,function2…]现在假设function1将返回一个数组,该数组是否会作为function2的参数自动传递?