2014-02-18 45 views
1

最近IM尝试读取的koajs代码,找到下面这行代码:节点需要有两个括号

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

是什么意思?为什么要使用('debug')然后('koa-route')?你可以找到代码here。并且我说我在koa-route中间件定义中找到这行代码

+6

'要求(“调试”)'返回的功能。 – elclanrs

+0

所以需要返回一个函数并且('koa-route')是参数? – MBehtemam

+1

是的,请参阅https://github.com/visionmedia/debug – elclanrs

回答

1

模块基本上看起来是这样的:

function toRun() { 
    // do stuff 
} 

module.exports = toRun; 

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

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

这是揭露事情的便捷方式最常用,但也可以使用,如果你想直接在导出的Function上公开一些方法。例如:

function toRun() { 
    // do stuff 
} 

toRun.moreStuff = function() { 
    // and again 
}; 

module.exports = toRun; 

然后可以访问你可以只抓住了整个事情的附加功能:

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

根据注释和debug定义require('debug')返回一个函数并且('koa-route')是这个函数的参数。

+1

有关[高阶函数](http://en.wikipedia.org/wiki/Higher-order_function)的更多信息, – elclanrs