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