nodejs簡單仿apache頁面

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Index of {{title}}</title>
</head>
<body>
   <h1>Index of  {{title}}</h1>
   <ul>
      <li><a href="/">Parent Directory</a></li>
      {{each files}}
      <li><a href="{{$value}}">{{$value}}</a></li>
      {{/each}}
   </ul>
</body>
</html>
//引入模塊
const http=require('http');
const path=require('path');
const fs=require('fs');
const url=require('url');
const template=require('art-template');
//開啓服務
const app=http.createServer();
app.listen(80,()=>console.log('服務器已連接'));
//默認路徑
const filePath=path.join(__dirname,'www');
//請求處理
app.on('request', (req,res)=>{
    //獲取路徑
    console.log(req.url);
    let {pathname,query}=url.parse(req.url,true);
    let filePath2=filePath;
    if(pathname!='/'){
        filePath2=path.join(filePath2,pathname);
    }
    //獲取後綴用以判斷
    let fileEnd=path.extname(filePath2);
    if(fileEnd==''){
        //打開文件夾
        let data= fs.readFileSync(__dirname+'/apache.html',(err,data)=>data);//apache.html是模板
        let files= fs.readdirSync(filePath2,(err,data)=>data);
        //把數據代入模板
        let html=template.render(data.toString(),{
            title:pathname,
            files:files
        })
        res.end(html);
    } else {
        //打開文件
        res.writeHeader(200,{'Content-Type':'text/html; charset=utf-8'});
        fs.readFile(filePath2,(err,data)=>{
            res.end(data);
        })
    }
})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章