node.js之基本http处理模块

http模块

http模块的最主要作用就是接受请求和返回响应从其最基本的使用中就可以体现出来了

var http = require('http');
var sever = http.createServer(function (request, response) {
    console.log(request.method + ':' + request.url);
    response.writeHead('200', { 'Content-Type': 'text/html' });
    response.write('<head><meta charset="utf-8"/></head>');
    response.end('<h1>我的第一个node.js web服务</h1>');
});
sever.listen(8080);
console.log('系统运行在http://127.0.0.1:8080');

上面的代码可以在用调试开启,也可以用命令行开启node main.js
控制台会出现 系统运行在http://127.0.0.1:8080说明就是成功开启服务了。
然后找个浏览器打开,localhost:8080或者127.0.0.1:8080,就出现了一个标准的标题
‘我的第一个node.js web服务’
说明我们的服务完美的起来了。

创建基本文件服务器

基本的思路就是将请求中的请求地址转化为请求文件的地址,然后读取这个文件,读取出这个文件之后就将他转储给响应,没有读取到文件或者文件或者文件目录时个文件夹就返回code 404;

var fs = require('fs');
var url = require('url');
var path = require('path');
var http = require('http');
//通过命令行参数获取到root目录,没有的话默认是当前目录
var root = path.resolve(process.argv[2] || '.');
//创建服务器
var serverhttp = http.createServer(function (request, response) {
    //获取请求中的path路径
    var pathname = url.parse(request.url).pathname;
    //拼接路径成为本地绝对路径
    var filepath = path.join(root, pathname);
    fs.stat(filepath, function (err, stat) {
        if (!err&&stat.isFile()) {
            //没有出错并且文件是文件而不是文件夹的情况下
            console.log('200'+request.url+'请求文件存在!');
            //返回http code码200 ok
            response.writeHead(200);
            fs.createReadStream(filepath).pipe(response);
        }else{
            //文件不存在或者请求的是文件夹的话
            console.log('404'+request.url);
            response.writeHead(404);
            response.end('404 Not Found');
        }
    });
});
//服务监听8080端口
serverhttp.listen(8080);

console.log('服务开启: http://127.0.0.1:8080/');

其中需求到了四个模块,fs,url,path,http,分别对应文件处理,url处理,路径处理,和http处理请求响应。
开启服务后,我先输入网址http://localhost:8080/
浏览器出现 404 Not Found说明服务成功但是没找到文件,因为直接请求请求的其实是本目录,本目录显然不是个文件所以返回404,然后请求http://localhost:8080/index.html,
index.html是我事先放进去的里面的内容是一个h1标签包裹着一段话“这是index.html”,浏览器上出现的就是一个大标题的“这是index.html”,所以请求成功,没问题,在请求http://localhost:8080/index2.html,并没有index2。html文件所以返回404,结果确实是404

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值