body-parser, неожиданный токен u в JSON на позиции - PullRequest
0 голосов
/ 10 апреля 2019

Я использую body-parser для получения тела запроса POST.Мой index.js файл выглядит следующим образом:

var express = require('express');
var app = express();
var bodyParser  = require('body-parser');

app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(bodyParser.json());
app.use(express.json());

app.post('/', function(request, response){
    console.log(request.body);
    res.send("test");
});

app.get('/', function(req, res) {
  res.send('Hello World!');
});



app.listen(8080, function() {
  console.log('Example app listening on port 8080!');
});

Когда я загружаю докер, я получаю сообщение о прослушивании, как и ожидалось.

Когда я запускаю команду:

curl -d {"user":"Someone"} -H "Content-Type: application/json" --url http://localhost:8080

Я получаю ошибку:

Unexpected token u in JSON at position 1
at JSON.parse (<anonymous>)

Я в замешательстве, потому что я нигде напрямую не вызываю json.parse

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Возможно, проблема в запросе.Тело должно быть строкой:

curl -X POST -H "Content-Type: application/json" -d '{"message": "foo"}' http://localhost:8080/messages

0 голосов
/ 10 апреля 2019

Вам нужно curl -d "{"user":"Someone"}" -H "Content-Type: application/json" --url http://localhost:8080; иногда Curl не разбирает одинарные кавычки.

...