3

別のAPIを模倣しています。また、別の(より良いIMHO)apiも提供したいと思います。

// this is url I need to support 
api.post('/books/updateBook', function(req, res) {
...
});

// Would also like to support
api.put('/books/:bookId', function(req, res) {
...
});

私は簡単に行うことができます:

var updateBook = function(req, res) {
...
}

// this is url I need to support 
api.post('/books/updateBook', updateBook);

// Would also like to support
api.put('/books/:bookId', updateBook);

完全に受け入れられますよね?表現するのが初めてなので、これを処理するためのより「表現力のある」方法があるかどうか疑問に思っています。正規表現を使用できることは知っていますが、さまざまなHTTP動詞(POSTとPUT)に正規表現をマッピングできるかどうかはわかりません。

考え?

4

1 に答える 1

4
api.all('/books/:bookId', function (req, res, next) {
  if (req.method === 'PUT' || req.method === 'POST) {
    //get your groove on
  } else {
    next();
  }
});

動詞をエクスプレスで組み合わせることができます。すべてを使用してメソッドを調べ、一致する場合はリクエストを処理し、それ以外の場合はハンドラーチェーンに渡します( を使用next();)。

そうは言っても、ルートハンドラーがラムダである必要がある理由はありません。

于 2013-03-22T03:24:59.643 に答える