2014-02-18 44 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