Включить изображение профиля при создании пользователя - PullRequest
0 голосов
/ 24 ноября 2018

У меня была эта функция для обновления информации о пользователе:

const update = (req, res, next) => { 
  let user = req.profile
  user = _.extend(user, req.body)
  user.updated = Date.now()
  user.save((err) => {
    if (err) {
      return res.status(400).json({
        error: errorHandler.getErrorMessage(err)
      })
    }
    user.hashed_password = undefined
    user.salt = undefined
    res.json(user)
  })
}

Затем я добавил изображение в свой профиль пользователя, поэтому хотел иметь возможность загрузить его при редактировании пользователя.Вот как теперь выглядит мой код:

const update = (req, res, next) => {
  let form = new formidable.IncomingForm()
  form.keepExtensions = true
  form.parse(req, (err, fields, files) => {
    if (err) {
      return res.status(400).json({
        error: "Photo could not be uploaded"
      })
    }
    let user = req.profile
    user = _.extend(user, fields)
    user.updated = Date.now()
    if(files.photo){
      user.photo.data = fs.readFileSync(files.photo.path)
      user.photo.contentType = files.photo.type
    }
    user.save((err, result) => {
      if (err) {
        return res.status(400).json({
          error: errorHandler.getErrorMessage(err)
        })
      }
      user.hashed_password = undefined
      user.salt = undefined
      res.json(user)
    })
  })
}

Теперь я хочу иметь возможность включить изображение профиля при создании пользователя.Вот как в настоящее время выглядит моя функция создания:

const create = (req, res, next) => {
  const user = new User(req.body)
  user.save((err, result) => {
    if (err) {
      return res.status(400).json({
        error: errorHandler.getErrorMessage(err)
      })
    }
    res.status(200).json({
  message: "Successfully signed up!"
    })
  })
}

Я отредактировал ее так:

const create = (req, res, next) => {
  let form = new formidable.IncomingForm()
  form.keepExtensions = true
  form.parse(req, (err, fields, files) => {
    if (err) {
      return res.status(400).json({
        error: "Photo could not be uploaded"
      })
    }
    let user = new User(req.body)
    user = _.extend(user, fields)
    if(files.photo){
      user.photo.data = fs.readFileSync(files.photo.path)
      user.photo.contentType = files.photo.type
    }
    user.save((err, result) => {
      if (err) {
        return res.status(400).json({
          error: errorHandler.getErrorMessage(err)
        })
      }
      res.status(200).json({
        message: "Successfully signed up!"
      })
    })
  })
}

Когда я сейчас пытаюсь создать пользователя, я получаю ошибку Photo could not be uploaded.Очевидно, что-то не так с моей функцией создания, но я не знаю, что это такое.Что я делаю не так?

Дополнительная информация.

Это ошибка, которую я получаю:

Ошибка: неверный заголовок типа содержимого, неизвестный тип содержимого: текстовый / обычный; кодировка = UTF-8

...