node.js 实现静态网站服务

查看更多资源

1. 案例简介:

   不使用任何框架,纯node.js搭建静态网站服务。

2. 案例目录结构:

3. 案列图示(部分):

4. 主要代码(server.js):

//引入模块
let http = require('http');
let url = require('url');
let fs = require('fs');
let path = require('path');

//引入自定义方法
let mimeModel = require('./model/getmime-all')

//创建服务 访问 http://localhost:8002/
http.createServer((req,res)=>{
    //获取请求文件名 如 index.html
    let pathName = url.parse(req.url,true).pathname;

    if(pathName == '/'){
        pathName = '/index.html'
    }
    //获取请求文件的后缀名 如.html
    let extName = path.extname(pathName);

    if(pathName != '/favicon.ico'){//过滤favicon请求
        console.log(pathName);

        //读取请求的静态文件 如index.html
        fs.readFile('static'+pathName,(err,data) => {
            if(err){//读取失败 返回404.html
                console.log('404');

				fs.readFile('static/404.html',function(error,data404){
					if(error){
						console.log(error);
					}else{
                        res.writeHead(404,{"Content-Type":"text/html;charset='utf-8'"});
                        res.write(data404);
                        res.end(); /*结束响应*/
                    }
				})
            }else{
                let mime = mimeModel.getMime(fs,extName);//获取文件类型
                res.writeHead(200,{'Content-Type':""+mime+";charset=utf-8"})
                res.write(data)//返回请求文件内容
                res.end();
            }
        })
    }
}).listen(8002)

5. 源码:

源码地址

更多资源 - 免费分享 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值