2014-03-27 35 views
-4

我正在嘗試設置PARAMS通過串在我的web應用程序的路由:使用PARAMS

app.param('id', /^\d+$/); 

我需要它更好的路由設置做的,像

app.get('/post/:id', show); 

但我得到下一個錯誤:

throw new error ('invalid param() call for ' + name + ', got ' + fn) 

我做錯了什麼?

+1

你能格式化你的問題嗎?很難得到你所發生的事情。 –

+0

你預計會發生什麼?您是否閱讀過文檔? http://expressjs.com/3x/api.html#app.param –

+0

@dystroy再試:) – Foker

回答

3

從您的意見中,您似乎很明顯忘記包含支持正則表達式的示例代碼部分app.paramThe documentation具有下面的代碼app.param('id', /^\d+$/);前:

app.param(function(name, fn){ 
    if (fn instanceof RegExp) { 
    return function(req, res, next, val){ 
     var captures; 
     if (captures = fn.exec(String(val))) { 
     req.params[name] = captures; 
     next(); 
     } else { 
     next('route'); 
     } 
    } 
    } 
}); 

包括,你應該罰款。

或者,您可以使用express-params模塊,該模塊包含適用於您的代碼。