Я использую сервер Restify (версия узла - v9.11.1, версия restify - 6.4.0).

Вот моя конфигурация сервера:

server.use(restify.plugins.queryParser({  mapParams: true }))
server.use(restify.plugins.bodyParser({  mapParams: true }));
server.pre(restify.plugins.pre.userAgentConnection());
server.use(restify.plugins.acceptParser(server.acceptable));

server.pre(cors.preflight);
server.use(cors.actual);

Теперь я хочу протестировать образец кода, используя Postman. Я хочу протестировать параметры запроса и параметры тела:

server.post('/ping/:param1', (req, res, next ) => {
console.log(req.params);
console.log(req.body);
res.send(200, { "ping" :true} );
return next() ;
});

Мои конфигурации почтальона:

  • Content-Type как application / json
  • POST по URL: http://127.0.0.1:8080/ping/value1 (для проверки параметров запроса)
  • Тело как "сырое" с содержанием: {"hello": "world"} (для проверки данных тела)

После запроса POST я могу получить параметры запроса, но не могу получить данные тела:

{ param1: 'value1' }
undefined
0
Derek 29 Май 2018 в 13:19

1 ответ

Лучший ответ

Я только что создал простой сервер restify с настройками сервера, которые вы указали выше, за исключением того, что пропустил материал cors. Затем я попал на сервер с помощью curl:

curl -F "hello=world" localhost:5555/ping/goodbye

И я получил это на stdout сервера:

{ param1: 'goodbye', hello: 'world' }
{ hello: 'world' }

Я не использую Postman, поэтому не могу сказать, может ли он у вас работает некорректно, но с curl это сработало.

Информация о моей версии выглядит следующим образом.

process.versions {http_parser: '2.7.0', узел: '8.2.1', v8: '5.8.283.41', uv: '1.13.1', zlib: '1.2.11', ares: '1.10.1 -DEV ', модули:' 57 ', openssl:' 1.0.2l ', icu: '59 .1', unicode: '9.0', cldr: '31 .0.1 ', tz:' 2017b '}

1
HeadCode 2 Июн 2018 в 00:36