1

node-restifyを使用していて、GET ルートをオーバーロードしようとしています - これは可能ですか? next()登録されている次の一致するルートを呼び出すべきではありませんか?

ここに例があります。なぜそれがうまくいかないのかについてのヒントはありますか?

server.get "search", (req, res, next) ->
    query = req.params.q
    console.log 'first handler'
    return next() if not query?

    # implement search functionality... return results as searchResults

    res.send 200, searchResults
    next()

server.get "search", (req, res, next) ->
    console.log 'second handler'
    res.send 200, "foo"
    next()

/search「foo」を出力することを期待/search?q=barし、「bar」検索語に一致するすべてのレコードを出力することを期待します。

4

2 に答える 2

0

@robertklep は近かった - ルートに a を追加するだけですname

高速な「ルート チェーン」構文はサポートされていませんが、同じ機能を次のように実現できます。

server.get('/foo', function (req, res, next) {
  if (something()) {
    next('GetBar');
    return;
  }

  res.send(200);
  next();
});

server.get({
  path: '/bar',
  name: 'GetBar'
}, function (req, res, next) {
  res.send(200, {bar: 'baz'));
  next();
});

https://github.com/mcavage/node-restify/issues/193

于 2013-11-05T18:41:59.193 に答える