[JavaScript] GridFs 에필로그편

최예닮·2022년 11월 30일
0
post-thumbnail

우리 기능중에 영상을 녹화하여 저장하는 기능이 있다.

이것을 DB에 저장하려고 하는데 몽고DB는 16메가 이상은 저장할 수 없기 때문에 구글링을 해본결과 Gridfs 를 통하여 chunk 로 분할하여 파일을 저장을 할 수 있다고 하여서 구현중에 있다.

오늘 하루종일 삽질해본 결과 ... 아직은 구현이 되지 않았고 감이 오지않았다. 계속해서 삽질을 해보면서 도전해봐야할거 같다.

우선 내가 작성한 코드를 적어보겠다.

const express = require("express")
const router = express.Router()
const multer = require("multer");
const { ObjectID } = require('mongodb');
const { Readable } = require('stream');

router.post('/', (req, res) => {
    const storage = multer.memoryStorage()
    const upload = multer({ storage: storage, limits: { fields: 1, fileSize: 6000000, files: 1, parts: 2 }});
    upload.single("track")(req, res, (err) => {
        if (err) {
            return res.status(400).json({ message: "업로드에 실패하셨습니다." });
        } else if(!req.body.name) {
            return res.status(400).json({ message: "No track name in request body" });
        }

        const readStream = Readable.from(req.file.buffer);
        const options = ({ filename: req.body.name, contenttype: 'video/mp4'});
        Attachment.write(options, readStream, (err, file) => {
            if (err)
                return res.status(400).json({message: "Bad Request"});
            else {
                console.log("Posted! \n" + file.toString());
                return res.status(200).json({
                    message: "Successfully Saved!",
                    file: file,
            });
            }
        })
    });
});

우선 이렇게 작성하고 선더클라이언트를 돌렸을때

업로드에 실패했다고 나온다. 에러 메세지를 보고 싶어서 err로 변경하고 돌려봤더니

이런식으로 오류가 상당히 많이 나오는것을 볼 수 있다...

모르겠어... 모르겠다고...

ㅠㅠㅠㅠ 눙물광광 😭😭😭 .... 할 수 있어... 할 수 있다....

profile
산을 오르려고 하는데 이제 주차장에 막 주차한 초보개발자

0개의 댓글