0

如果我使用准系统回显服务器演示进行 restify,它可以正常工作。但是,如果我进行如下所示的一些更改,它的行为会与我预期的不同:

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

Everything that goes after the question mark in the URL are not params but query, and in order to reference it use: req.query.
Try this to echo back all data.

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

我在其他帖子中找到了有用的答案。

最终我需要为 GET 添加这个

server.use(restify.queryParser());

server.use(restify.bodyParser());

对于帖子

于 2013-07-03T16:00:14.047 回答