const express = require("express")
const router = express.Router()
const multer = require("multer");
const { ObjectID } = require('mongodb');
const { Readable } = require('stream');
const { createModel } = require('mongoose-gridfs');
router.get('/:trackID', (req, res) => {
if(!req.params.trackID) {
return res.status(400).json({
message: "trackId가 다르니 확인해주세요."
});
}
res.set('content-type', 'video/mp4');
res.set('accept-ranges', 'bytes');
try {
const reader = Attachment.read({_id: ObjectID(req.params.trackID)});
reader.on('data', (chunk)=> {
res.write(chunk);
});
reader.on('close', () => {
console.log("확인완료!");
res.end();
});
} catch(err) {
console.log(err);
res.status(404).json({
message:"Files 에 ID 값을 찾을 수 없어요 확인해주세요.",
});
}
});
어제 포스트를 하면 _id로 전체를 관리할 수 있는 key 값이 생기고 params 값에 key 값인 _id 를 넣으면 chunk로 분리되었던 파일들을 볼 수 있다. 한번 해보겠다.
Headers 값을 보면 내가 코드에 적어놓은 type 값들이 정상적으로 저장되어있는 것을 볼 수 있다. 자 여기서 Response 에서 코드를 오픈하면 짜라란~
내가 저장한 동영상을 불러올 수 있게 된다 ! 와우 !!!! 선더클라이언트에서도 동영상 재생이 되는구나... 신기방기... 마찬가지로 음성파일인 mp3를 mp4로 저장하여 불러와도 정상적으로 잘 작동됨을 확인할 수 있다.
화질이 깨지지도 않고 음질이 깨지지 않으니 괜찮은 방법인거 같다.