码迷,mamicode.com
首页 > Web开发 > 详细

Nodejs仿Apache的功能

时间:2018-07-09 19:25:05      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:apache   支持   end   info   监听   nis   替换   ===   执行   

一、初步实现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

Nodejs仿Apache的功能

标签:apache   支持   end   info   监听   nis   替换   ===   执行   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!