import express from "express";
import { registerView } from "../controllers/videoController";
const apiRouter = express.Router();
apiRouter.post("/videos/:id/view", registerView);
export default apiRouter
상태코드를 보낼때 status가 아닌 sendStatus로 보내야 프론트에서 요청을 했을때 pending이 안됨.
export const registerView = async (req, res) => {
const { id } = req.params;
const video = await Video.findById(id);
if (!video) {
return res.sendStatus(404);
}
video.meta.views = video.meta.views + 1;
await video.save();
return res.sendStatus(200);
};
설정한 data-id를 videoContainer.dataset.id로 가져 올 수 있다.
const handleEnded = () => {
const { id } = videoContainer.dataset;
fetch(`/videos/${id}/view`, {
method: "POST",
});
};
video.addEventListener("ended", handleEnded);