使用HTTP构建一个网站

使用原生的HTTP  API

我们构建这样的文件结构:

var http = require("http");
var fs = require("fs");
var server = http.createServer(function (req, res) {
    console.log("***"+req.url+"***");
    if (req.method == "GET" &&'/images'==req.url.substr(0,7)&&'.jpg' == req.url.substr(-4)) {
       console.log("successfully");
        fs.stat(__dirname + req.url, function (err, stat) {
            if (err || !stat.isFile()) {//如果错误存在或者路径并非是文件时返回错误信息
                res.writeHead(404);
                res.end('NOT FOUND');
                return;
            }
            console.log(__dirname+"--"+req.url);
            serve(__dirname + req.url, 'image/jpg');
        });
    } 
    else if ('GET' == req.method && '\/' == req.url) {
        serve(__dirname + "\\" + 'index.html', 'text/html');//因为一个/表示转义字符,所以要两个才能表示一个/
    } 
    else {
        console.log("website lost"+"--"+req.method+"--"+req.url);
        res.writeHead(404);
        res.end('NOT FOUND');
    }
    function serve(path, type) {
        res.writeHead(200, { 'Content-Type': type });
        fs.createReadStream(path).pipe(res);//创建一个读文件流pipe到res上去
    }
})
server.listen(3000);

node server以后

 

我们在终端可以看见打印出来的信息:

可以看见一开始打印出来的req.url是‘/’,然后根据:

else if ('GET' == req.method && '\/' == req.url) {
        serve(__dirname + "\\" + 'index.html', 'text/html');//因为一个/表示转义字符,所以要两个才能表示一个/
    } 

载入html文件,里面有三张图片,就又刷新一遍,开始进入到images文件夹

所以我们试一下将这一段  else if的代码注释掉,就发现

没错,果然是这样!!

这就是利用原生的API托管一个简单网站,后面的一篇文章将会介绍利用Connect实现一个简单的网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值