node js 질문드립니다.
조회수 968회
``안녕하세요. node js express를 사용해서 비디오를 출력하려고 합니다. 경로까지 잘 설정을 해주었는데 동영상이 실행이 되지 않아서 질문 올립니다.
메인인 app.js 입니다.
video.js인 html형식을 출력하려고 express 모듈을 사용했습니다.
경로도 잘 설정 했는데 왜 안되는걸까요..........?
코드들입니다.
app.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var videoRouter = require('./routes/video');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/video', videoRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
video.js
var express = require('express');
var fs = require('fs');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('video', { title: 'video' });
});
module.exports = router;
video.ejs
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title><%= title %></title>
</head>
<body>
<h1>><%= title %></h1>
<video width='400' height="400" autoplay controls loop>
<source src='video/Squat.mp4'>
</video>
비디오를 실행시킵니다
</body>
</html>
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
HTTP
404
는 "못 찾겠다"는 에러입니다. 어딜 찾아봤길래 못 찾겠다는 것일까요? 이 소스는/public
폴더에서/video/Squat.mp4
파일을 찾고 있는 겁니다.
app.js
보시면 이렇게 돼 있거든요.app.use(express.static(path.join(__dirname, 'public')));
지금 소스 그대로 두시고
public
폴더 밑에video
디렉토리 만들어서 파일만 이동시켜 놓고 다시 실행해 보세요. 아마 나올 거에요.
댓글 입력