繁体   English   中英

为什么我不能在Express的app.use上使用Function.prototype.apply?

[英]Why can't I use Function.prototype.apply on Express' app.use?

我只是注意到例如app.use.apply(null, ['/', f => f]);

会抛出TypeError

 TypeError: Cannot read property 'lazyrouter' of null
  at use (node_modules/express/lib/application.js:214:7)

假设我的快速应用程序实例已正确设置,我在做什么错? 我认为那是适当的错误吗? app.use([path], cb) http://expressjs.com/en/guide/using-middleware.html

apply()将改变this在function.For的app.use()this直接向实例app ,但你将其设置为null ,而且没有use安装在功能特性null ,所以扔了错误。

当将函数作为对象的方法调用时,例如app.use([path], cb) ,在函数调用内, this关键字将绑定到对象。 apply的第一个参数是您要提供的this绑定,因此您需要编写app.use.apply(app, ['/', f => f]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM