0

復元にベアボーン エコー サーバー デモを使用すると、正常に動作します。しかし、以下に示すいくつかの変更を加えると、予想とは異なる動作をします。

var restify = require('restify');

function respond(req, res, next) {
  res.send(req.params); //NOTE: should echo back all params
}

var server = restify.createServer();
server.get('/hello/', respond); //NOTE: parameter :name removed

server.listen(8080, function() {
  console.log('%s listening at %s', server.name, server.url);
});

私が行ったことは、URL から名前パラメーターを削除し、応答関数ですべてのパラメーターをエコーし​​たことです。呼び出し:

http://localhost:8080/hello

戻り値

{}

しかし、そうです:

http://localhost:8080/hello?foo=bar

応答に foo:bar が表示されないのはなぜですか?

4

2 に答える 2

0

URL のクエスチョン マークの後にあるものはすべてparamsbutqueryではなく、それを参照するには: を使用しますreq.query
これを試して、すべてのデータをエコーバックしてください。

function respond(req, res, next) {
  res.send({
    params: req.params,
    query: req.query
  });
}
于 2013-07-03T15:53:21.533 に答える