2

Multer を使用してファイル システムに画像をアップロードしようとしています。私のルートの関連データを見てください:

const
  ..
  multer = require('multer'),
  ..;

const storage = multer.diskStorage({
    destination: function (req, file, callback) {
      callback(null, './uploads');
    },
    filename: function (req, file, callback) {
      callback(null, req.params.id + file.originalname);
    }
  }),
  upload = multer({storage: storage}).single('profilePic');

router.put(
  '/:id',
  middleware.isLoggedIn,
  (req, res, next) => {

    User
      .findByIdAndUpdate(
        req.params.id, req.body.user,
        (err, updatedUser) => {
          if (err) {
            return req.flash('error', err.message);
          }

          upload(req, res, (err) => {
            if (err) {
              eval(locus);
              return req.flash('error', err.message);
            }
            updatedUser = req.body.user;
            eval(locus);

            //redirect show page
            res.redirect('/dashboard/profile/' + req.params.id + '/edit');
          });
        });
  });

module.exports = router;

updatedUser を見ると、最初に目にするのは、 { profilePic: 'data:image/jpeg;base64,....}何が間違っているのかということです。ここにアップロード機能があるので、ページを更新することすらありません。私が本当にやりたいことは、宛先を s3 で動作させることですが、最初にこれを保存する必要があります。

4

1 に答える 1