簡體   English   中英

節點express.static讀取所有目錄

[英]node express.static to read all directory

我正在做一個視頻門戶項目。 視頻被分類在服務器上的不同文件夾中。我使用的是nodejs技術。 我的目標是讀取文件夾的功能,該功能可提供該文件夾中的所有視頻內容。 當前,下面的代碼提供一個特定的文件而不是文件夾。 我將感謝您的貢獻。 謝謝

  let express = require('express');
let bodyParser = require('body-parser');
let path = require('path');

let fs = require('fs');
var ejs=require('ejs');
let port = process.env.PORT || 4000;
let videosPath = './videos/';



let app = express();

/*let logger = function(req, res, next){
    console.log("logging...");
}
app.use(logger);*/

//view engine
app.set('view engine', 'ejs');
app.set('views', path.join( __dirname, 'views'));

//routing alternative
//app.use(express.static('public'));


// using body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));



app.get('/videos/:id',function(req,res){

    fs.readdir(`./videos/${req.params.id}`, (err, files) => {
       console.log(files);
       res.render('pages/index',{videos:files,cateogry_id:req.params.id});
    });

});

app.get('/',function(req,res){
res.render('index');});


app.listen(port, function(){
    console.log("server runnung on 4000");
});

使用EJS進行模板渲染:

請參考此鏈接以獲取教程,

在項目的根目錄下創建views文件夾,在其中創建用於渲染的ejs頁面

現在在projectName / views /中創建index.ejs文件

index.ejs文件中

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
</head>
<body>

  <h3><%=videos.length+'total videos'%><h3>

  <div class="row">

  <% videos.forEach(function(video)){ %>
       <div class="col-lg-4 my-2">
         <video width="320" height="240" autoplay>
            <source src="<%= '/videos/'+category_id+'/'+video%>" type="video/mp4">
         </video>
       </div>
  <%})%>
  </div>


</body>
</html>

使用fs模塊

我們將使用fs讀取視頻文件夾內容

在您的視頻文件夾中,通過category_id創建文件夾,在其中放置您的視頻

videos/1/myvideo.mp4

將此添加到您的app.js文件中

var fs = require('fs');
var ejs=require('ejs');

 // set the view engine to ejs
 app.set('view engine', 'ejs');


app.get('/category/:id',function(req,res){

    fs.readdir(`./videos/${req.params.id}`, (err, files) => {
       console.log(files);
       res.render('pages/index',{videos:files,cateogry_id:req.params.id});
    });

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM