创建用户时包括个人资料照片

时间:2018-11-24 09:36:24

标签: javascript node.js material-ui formidable

我具有用于更新用户信息的功能:

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)
    })
  })
}

我现在希望能够在创建用户时包括个人资料照片。这是我的create函数当前的样子:

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。显然,我的create函数不正确,但我不知道它是什么。我在做什么错了?

其他信息。

这是我得到的错误:

  

错误:错误的内容类型标题,未知的内容类型:文本/纯文本; charset = UTF-8

0 个答案:

没有答案