Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这两种使用express中间件的方法之间有区别吗?_Express - Fatal编程技术网

这两种使用express中间件的方法之间有区别吗?

这两种使用express中间件的方法之间有区别吗?,express,Express,我遇到了两种不同的方法来定义express,use()中间件,我想知道它们之间是否有任何区别,或者仅仅是语法上的差异 A. const-app=express(); 应用程序使用(cors()); app.use(responseTime()); 应用程序使用(someFunction); 应用程序使用(另一个处理程序); 应用程序使用(failureHandler); B const-app=express(); app.use(cors()) .use(responseTime()) .使

我遇到了两种不同的方法来定义express,use()中间件,我想知道它们之间是否有任何区别,或者仅仅是语法上的差异

A.
const-app=express();
应用程序使用(cors());
app.use(responseTime());
应用程序使用(someFunction);
应用程序使用(另一个处理程序);
应用程序使用(failureHandler);
B
const-app=express();
app.use(cors())
.use(responseTime())
.使用(someFunction)
.使用(另一个处理程序)
.使用(故障处理程序);

没有真正的区别,只有一个字符在每次编写“app.use”时缩短了3个字符。这有点像定义.ejs和命名文件“home”而不是“home.ejs”。不同之处在于,您每次都使用
完成这一行

app.use(cors())带有
是字符串的结尾

例如,如果您使用了以下代码,
.use(failureHandler)不起作用,因为
结束第一个
应用程序。使用

const-app=express();
app.use(cors())
.use(responseTime())
.使用(someFunction)
.使用(另一个处理程序) 它叫:

方法链接是一种简化场景中代码的技术 涉及对同一对象执行多个操作

调查以下信息的来源:


正如您所看到的那样,使用
use
返回
这个
,因此链接是可能的。

它们不是使用它的两种方式。他们是一样的。通过调用
app.use()

它也不是语法上的糖
app.use()
返回
,因此它返回的值(与
app
中存储的值相同)可用于链接另一个调用
。use()
等。
结果是一样的;这取决于你喜欢哪种方式(你应该使用你觉得更容易阅读和理解的方式)

app.use = function use(fn) {
  ...
  return this:
}