• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 이미지 이름 몽고db에 저장하기

이미지 이름 몽고db에 저장하기

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #47504

    신씨
    참가자
    안녕하세요
    좋은 강의 항상 감사드립니다!
    
    선생님 강의보면서 문의 게시판을 만들고 있는데요, 이미지 업로드 관련해서 질문드립니다!
    
    사용자가 업로드한 이미지의 이름만 db에 저장해서 
    html img태그에 전체 이미지주소를 전달해 이미지를 보여주고싶습니다.
    
     ex) http://localhost:3030/img/userUpload/'이미지이름.확장자' 
      < img src = [' http://localhost:3030/img/userUpload/ <&= dataList.uploadimg %> '} />
    
    근데 이미지 이름을 어떻게 저장하는지 몰라서 계속 헤매고 있습니다
    (이 고통에서 벗어나고 싶습니다...)
    도와주시면 감사하겠습니다! 
    
    아래는 제 코드입니다 
    Data.js
    
    
    
    server.js
    
    //db
    var Data = require('./models/Data'); 
    
    
    const storage = multer.diskStorage({
        destination: function (req, file, cb) {
            cb(null, "./public/img/userUpload");
        },
        filename: function (req, file, cb) {
            cb(null, file.originalname);
        }
    });
    var upload = multer({
        storage: storage,
        fileFilter: (req, file, callback) => {
            var ext = path.extname(file.originalname);
            if (ext !== '.png' && ext !== '.jpg' && ext !== '.jpeg') {
                return callback(new Error('PNG, JPG로 업로드해주세요!'))
            }
            callback(null, true)
        },
        limits: {
            fileSize: 1024 * 1024
        }
    });
    //db 저장하기
    app.post('/add', upload.single('uploadimg'), (req, res) => {
        Data.create(req.body, (err, result) => {
            if (err) { return console.log('/add post err :', err) };
            res.sendFile(__dirname + '/public/add.html')
        });
    });
    
    //show 사용자 입력 게시물 보여주기 
    app.get('/show/:id', function (req, res) {
        Data.findOne({ _id: req.params.id }, function (err, result) {
            if (err) return res.json(err);
            res.render('dataPosts/show', { dataList: result });
        });
    })
    
    
    
    #47542

    codingapple
    키 마스터
    req.body.file 아니면 files 출력해보면 이미지 이름같은게 담겨있습니다
    #47671

    신씨
    참가자
    감사합니다! 
    이름 찾는 건 발견했는데 아래 오류가 있습니다
    
    
    app.post('/add', upload.single('uploadimg'), (req, res) => {
        console.log(req.file.originalname)
    
        Data.create(req.body, (err, result) => {
            result.uploadimg = req.file.originalname;
            console.log(result)
            if (err) { return console.log('/add post err :', err) };
            res.sendFile(__dirname + '/public/add.html')
        });
    });
    
    터미널창에는 아래처럼 잘 나오는데 
    
    
     MongoDB Atlas에서 확인해본 바 나오지 않습니다 
    
    
    #47678

    codingapple
    키 마스터
    db에 저장할 때 이미지 이름은 빼고 req.body만 저장하라고한듯요
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠