Nodejs仿Apache的功能

匿名 (未验证) 提交于 2019-12-03 00:40:02

一、初步实现Apache功能

//1.加载模块 var http=require(‘http); var fs=require(‘fs); //2.创建server var server=http.createServer(); //3.监听server的request请求事件,设置请求处理函数 var wwwDir=‘C:/Users/Administrator/Desktop/Code‘;//设置目录(注意转义符) server.on(‘request‘,function(req,res){     var url=req.url;     if(url===‘/‘){         fs.readFile(wwwDir+‘/index.html‘,function(error,data){             if(error){//return返回值,阻止代码往后执行                 return res.end(‘404 Not Found);             }             res.end(data);         });     }else if(url===‘/a.txt){         fs.readFile(wwwDir+‘/a.txt‘,function(error,data){             if(error){//return返回值,阻止代码往后执行                 return res.end(‘404 Not Found);             }             res.end(data);         });     }else if(url===‘/index.html){         fs.readFile(wwwDir+‘/index.html‘,function(error,data){             if(error){//return返回值,阻止代码往后执行                 return res.end(‘404 Not Found);             }             res.end(data);         });     }else if(url===‘/app/login.html){         fs.readFile(wwwDir+‘/app/login.html‘,function(error,data){             if(error){//return返回值,阻止代码往后执行                 return res.end(‘404 Not Found);             }             res.end(data);         });     } }); server.listen(3000,function(){     console.log(server is running....‘); });

二、可以访问目录下的文件(改进版)

//1.加载模块 var http=require(‘http); var fs=require(‘fs); //2.创建server var server=http.createServer(); //3.监听server的request请求事件,设置请求处理函数 var wwwDir=‘C:/Users/Administrator/Desktop/Code‘;//设置目录(注意转义符) server.on(‘request‘,function(req,res){     var url=req.url;     var filePath=‘/index.html;    if(url!==‘/‘){        filePath=url;    }    fs.readFile(wwwDir+filePath,function(error,data){     if(error){         return res.end(‘404 not found);     }     res.end(data);    }); }); server.listen(3000,function(){     console.log(server is running....‘); });

三、实现Apache目录列表功能

①方法一:字符串替换和拼接

②方法二:利用模板引擎art-template

  • 安装:npm install art-template(自动默认下载到该命令执行的目录中的node_moudule文件夹里,不能改动,也不支持改动)
  • 在需要使用的文件模块中加载art-template(使用require(‘下载包名字’)方法加载,下载名字就是install后面的名字)
  • 查文档使用模板引擎的API

原文:https://www.cnblogs.com/EricZLin/p/9284919.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!