Node.js Express Тело запроса на публикацию пусто - PullRequest
0 голосов
/ 05 мая 2020

Привет, у меня возникла проблема с моим Express сервером. По этой проблеме было много сообщений о переполнении стека, но я не смог найти ответ, который работал бы для меня. При получении запроса POST я получаю только {} для request.body в приведенном ниже коде:

const bodyParser = require('body-parser');
const app = express();
const User = require('./models/users');
const port = process.env.PORT || 3000;

app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json()); // support json encoded bodies

//Basic routes
app.post('/signup', async (request,response)=>{
    //const newUser = new User(queryObject);
    console.log("in post");
    console.log(request.body);
    response.end();
});


//Binding to a port
app.listen(port, ()=>{
    console.log('Express server started at port 3000');
});

Здесь я отправляю POST request:

const xhr = new XMLHttpRequest();
            xhr.addEventListener('load', () => {
                console.log(xhr.response);
            });
            xhr.open('POST', 'http://localhost:3000/signup', false);
            xhr.send(JSON.stringify({ hello : "WORLD" }));

Что-то я упускаю или делаю неправильно? Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Консоль браузера проверяли? Вы должны увидеть такую ​​ошибку:

Access to XMLHttpRequest at 'http://localhost:3000/signup' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Кроме того, вы проверяли этот ответ?

Обновление:

Поскольку у вас нет Ошибки, связанные с CORS, затем просто установите заголовок:

xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify({ hello: "WORLD" }));

Express распознает его как JSON и будет доступно как req.body.

0 голосов
/ 05 мая 2020

Йой ничего не отправляет обратно клиенту, поэтому передайте свой json объект внутри res.end () или используйте это res. json ({"foo": "bar"});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...