节点需要两个括号

最近我尝试阅读koajs的代码,并find这行代码:

var debug = require('debug')('koa-route'); 

这是什么意思 ? 为什么使用('debug')然后('koa-route')? 你可以在这里find代码。 我说我find了这个代码在koa-route中间件的定义

模块基本上是这样的:

 function toRun() { // do stuff } module.exports = toRun; 

然后你的脚本代码执行以下操作:

 var ran = require('torun')(); 

这是一个暴露最常用的东西的方便方法,但是如果你想直接在导出的Function上暴露一些方法,也是可用的。 例如:

 function toRun() { // do stuff } toRun.moreStuff = function() { // and again }; module.exports = toRun; 

然后要获得额外的function,你可以抓住整个事情:

 var toRun = require('torun'); var ran = toRun(); var stuff = toRun.moreStuff(); 

根据注释和debugging的定义要求('debug')返回一个函数和('koa-route')是该函数的参数。