Использование express-грозно для получения составных данных , но это делает простые запросы post с телом запроса выполняемыми вечно

#javascript #node.js #express #formidable

Вопрос:

app.js

 const express = require('express')
const app = express()

const app = express()
const PORT = process.env.SERVER_PORT || 8080

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

app.listen(PORT, () => {
    console.log(`The application is up and running on ${PORT}`)
})
 

controller.js
Это содержит контроллер, который принимает изображение в кодировке base64 в formdata и к которому можно получить доступ с помощью свойства filename (это один контроллер, который отлично работает с <url>).

 const uploadProfilePic = async (req, res) => {
    let strArr = req.fields.filename.split(',')
    let buffer = new Buffer(strArr[1], 'base64')
    let filename =
        Date.now().toString()   ''   strArr[0].split('/')[1].split(';')[0]
    try {
        req.user.profile = buffer
        req.user.filename = filename
        await req.user.save()
        return res.status(200).json(
        customMessage(true, {
            message: 'Successfully uploaded',
        }),
        )
    } catch (error) {
        return res.status(500).status(internalServerError)
    }
}
 

controller2.js Этот контроллер работает неправильно, он даже не запускается, когда мы используем express-terrible, и маршрут запроса post, к которому привязан этот контроллер, работает вечно, но если мы не передадим тело запроса, он будет работать идеально или если мы оставим комментарий:

 //app.use(express-formidable);
//In app.js
 

тогда он работает правильно, но тогда controller.js не убегает.

 const updateUserData = async (req, res) => {
    try {
      const {_id, email, name, username, bio, code, platform, languages } = req.body
      if (username === undefined || code === undefined || !platform || !languages)
        return res
          .status(400)
          .json(customMessage(false, 'Please Satisy Validations'))
  
      let user = req.user
      let user1 = await UserModel.findById(_id)
      user1.username = username;
      user1.code = code;
      user1.bio = bio;
      user1.platform = platform;
      user1.languages = languages;
  
      if (!user) return res.status(500).json(internalServerError())
      else {
        await user1.save()
        console.log
        return res
          .status(200)
          .json(customMessage(true, `user with ${email} updated`))
      }
    } catch (error) {
      console.log(error)
      return res.status(500).json(internalServerError())
    }
}