Node.js 이미지 업로드

·2023년 5월 25일
post-thumbnail
var express = require('express');
var app = express();
var mysql = require('mysql'); //파일 이름 지정하여 db에 저장 시 사용
var bodyParser = require('body-parser');

const path = require("path");
const resImgPath = path.join(__dirname, "postImage/restaurant"); // 현재 디렉토리 기준 폴더 지정하기
const revImgPath = path.join(__dirname, "postImage/review");
const multer = require("multer");
const uuid4 = require("uuid4");

app.use(express.static(resImgPath));//레스토랑 이미지
app.use(bodyParser.json({extended: true}));
app.use(bodyParser.urlencoded({extended: true})); 

// 레스토랑  이미지 업로드
const upResImg = multer({
  storage: multer.diskStorage({
    filename(req, file, done) {
      const randomID = uuid4();
      const ext = path.extname(file.originalname);
      const filename = randomID + ext;
      done(null, filename);
    },
    destination(req, file, done) {
      done(null, path.join(__dirname, "postImage/restaurant"));
    },
  }),
  limits: { fileSize: 1024 * 1024 },
});

const uploadMiddlewareRes = upResImg.single("myFile");

app.post("/upload/restaurant/image", uploadMiddlewareRes, (req, res) => {
    var ImgPath = req.file.filename;
    var resIdx = req.body.resIdx;

    var sql = 'UPDATE Restaurants SET resImg=? WHERE resIdx=?';

    var params = [ImgPath, resIdx];

    connection.query(sql, params, function (err, result) {
        var resultCode = 404;
        var message = '이미지 업로드 실패';

        if (err) {
            console.log(err);
        } else {
            resultCode = 200;
            message = '이미지 업로드 성공';
        }
        res.json({
            'ImgPath': ImgPath,
            'resIdx' : resIdx,
            'message': message
        });
    });
});
profile
개발 여정기

0개의 댓글