У меня есть экспресс-приложение, которое предназначено для простого успокоения api. это мой app.js файл добавив тело парсер промежуточного программногоexpress Неожиданный токен k
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
использованием bodyparser 1.15.2
это мой основной файл маршрутизации
...
r.post('/search/:keyword', function(req, res){
var __keyword = req.params.keyword,
console.log(req.body);
Я использую для почтальона отправка запросов, когда я использую вкладку raw для отправки запроса с помощью приложения /json, результат получается в порядке. Код этого способ отправки запросов генерирует выглядит следующим образом
POST /api/search/mykeyword HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Cache-Control: no-cache
{
"key": "value"
}
при использовании рентгеновских форм-urlencoded варианта в почтальона я получаю эту ошибку
SyntaxError: Unexpected token k
at parse (D:<projectpath>\node_modules\body-parser\lib\types\json.js:83:15)
at D:<projectpath>\node_modules\body-parser\lib\read.js:116:18
at invokeCallback (D:<projectpath>\node_modules\body-parser\node_modules\raw-body\index.js:262:16)
at done (D:<projectpath>\node_modules\body-parser\node_modules\raw-body\index.js:251:7)
at IncomingMessage.onEnd (D:<projectpath>\node_modules\body-parser\node_modules\raw-body\index.js:307:7)
at emitNone (events.js:67:13)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:913:12)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
запрос будет выглядеть следующим образом
POST /api/search/mykeyword HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Cache-Control: no-cache
{
"key": "value"
}
Для меня это выглядит точно так же, но это порождает эту ошибку? Это ошибка в bodyparser, express или postman? Или это моя ошибка? Когда только называя
app.use(bodyParser.urlencoded({extended: true}));
req.body объект всегда пуст, независимо от того, какой из описанных способов, которые я использую
Я думаю, что вы устанавливаете тип тела как 'х-WWW-форм-urlencoded' и Content-типа, как' приложения/json'. Можете ли вы изменить Content-Type на 'application/x-www-form-urlencoded' в заголовках и проверить? –