2014-01-06 34 views
2

我在鐵路由器定義如下基本服務器側的路線:是否可以定義響應某些HTTP操作的鐵路由器服務器端路由?

this.route('foo', { 
    where: 'server', 
    path: '/foo', 
    action: function() { 
    // handle response 
    } 
}); 

這似乎在「/ foo」的任何HTTP動作,即GET爲「/ foo」的和響應請求POST到「/ foo」都會觸發此路由。

  1. 是否有可能限制在我們採取行動的迴應,並讓 其他行動是NOTFOUND?
  2. 同樣,是否有可能讓GET 由一條路由處理「/ foo」,並由另一條路由處理「/ foo」的POST?

回答

3

你絕對可以檢查方法且僅當它是你想要的,例如,像這樣的迴應:

Router.map(function() { 
    this.route('route', { 
     path: '/mypath', 
     where: 'server', 
     action: function() { 
      if (this.request.method != 'GET') { 
       // do whatever 
      } else { 
       this.response.writeHead(404); 
      } 
     } 
    }) 
}); 

第二個問題,我百思不得其解。某種程度上可以使用this.next(),但我不確定。

+0

聽起來就像在這一點上沒有任何內置的支持,所以像這個例子那樣手動滾動它是最好的解決方案。 –

相關問題