React / Express: ошибка POST 413: слишком большая полезная нагрузка (Bodyparser не работает) - PullRequest
0 голосов
/ 11 января 2020

Я пробовал все, но это просто невозможно исправить. Я просмотрел каждые предлагаемые решения на стеке и пролистал 3 страницы Google.

Вещи, которые я пробовал

  1. Добавлено extended: true/false в bodyParser. json
  2. Используется bodyParser.urlencoder ()
  3. Переключил и использовал расширение мультитера после этого урока , но постоянно получал ошибку path not found.

Кто-то, пожалуйста, помогите

Реагирует handleCrinting функция:

async function handlePrinting (file) {
    const raw = file.getFileEncodeBase64String()
    const destination = 'printer'
    const key = file.file.lastModified
    var data = {
      raw: raw,
      pageRanges: pageRanges,
      sides: sides,
      copies: copies,
      destination: destination,
      key: key
    }

    await axios
      .post('/api/print/submit', data)
      .then(res => {
        console.log(res)
      })
      .catch(err => {
        console.log(err)
    })
  }

Express:

router.use(bodyParser.json({
  parameterLimit: 100000,
  limit: '50mb'
}))

router.post('/submit', (req, res) => {
  const data = {
    raw: req.body.raw,
    pageRanges: req.body.pageRanges,
    sides: req.body.sides,
    copies: req.body.copies,
    destination: req.body.destination,
    key: req.body.key,
  }

  Print.create(data, (error, post) => {
    if (error) {
      console.log(`Printing submit error: ${error}`)
      return res.sendStatus(BAD_REQUEST)
    }

    printFunction(data.raw, data.copies, data.sides, data.pageRanges, data.destination)
    return res.status(OK).send(post)
  })
})

1 Ответ

0 голосов
/ 11 января 2020

Я не уверен, поможет ли это, вы пробовали использовать сжатие?

https://www.npmjs.com/package/compression

простой в использовании

импорт

const compression = require('compression');

использование

app.use(compression());

Другой подход - не использовать анализатор тела, обычно я не использую.

app.use(express.json());

, чтобы отправить

return res.status(200).json({data:data});
...