express. js Форма сообщения req.body пустое тело {} - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий код reactjs и я использую expressjs для обработки почтового запроса. req.body всегда возвращает {} из приложения. Но это работает в Почтальоне.

мой reactjs фрагмент кода:

  handleSubmit(e) {
    e.preventDefault();

    fetch(config.urlDev + '/notes', {
      method: 'post',
      body: { "email":"test" },
      //headers: {'Content-Type':'x-www-form-urlencoded'}
      headers: {'Content-Type':'application/json'}
    })
      .then((res) => res.json())
      .then((res) => {
        console.log(res)
      })
      .catch((err) => {
        console.log(err)
      })
  }

мой expressjs фрагмент кода:

module.exports = function (app, db) {

  app.post('/notes', (req, res) => {
     console.log(req.body)
     console.log(req.params)
     res.send(req.body)
  })
}

сервер. js:

const express = require('express');
const MongoClient = require('mongodb').MongoClient
const bodyParser = require('body-parser')
const db = require('./config/db');
const app = express();
const port = 8000;
const cors = require('cors');
const path = require('path');

app.use(cors())
//app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))

MongoClient.connect(db.url, {useUnifiedTopology: true}, (err, database) => {
  if (err) return console.log(err)

  const mydb = database.db('notes')

  require('./app/routes') (app, mydb);
  app.listen(port, () => {
    console.log ("server on " + port)
  })
})

почтальон

1 Ответ

0 голосов
/ 26 марта 2020

Попробуйте откомментировать строку //app.use(bodyParser.json()), и она должна работать.

или, в качестве альтернативы, если вы отправляете заголовки в запросе на выборку как headers: {'Content-Type':'x-www-form-urlencoded'} вместо headers: {'Content-Type':'application/json'}, это должно работать.

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