nodejs实现一个简单的 HTTP静态文件服务器(一)

1.首先我们来实现一个简单的HTTP服务器

var http = require("http");
var server = http.createServer(function(req, res){
    res.writeHead(200, {‘Content-Type‘ : ‘text/html;charset=utf8‘});
    res.write(‘<div style="font-size:24px;color:red">我们的一个简单的服务器</div>‘);
});
server.listen(‘9090‘, ‘127.0.0.1‘);

上面的程序运行结果为:

2.我们获取请求的url

var http = require("http");
var url = require("url");
var server = http.createServer(function(req, res){
    var req_path = url.parse(req.url).path;
    var str = ‘<div style="font-size:24px;color:red">我们的请求路径为:‘+req_path+‘</div>‘;
    res.writeHead(200, {‘Content-Type‘ : ‘text/html;charset=utf8‘});
    res.write(str);
});
server.listen(‘9090‘, ‘127.0.0.1‘);

上面的程序的运行结果为:

3.以当前文件所在的目录为网站的根目录,根据请求的url,将对应的文件返回给浏览器;若url表示的文件夹则将此文件夹下的文件名输出。

var http = require("http");
var url = require("url");
var fs = require("fs");
var server = http.createServer(function(req, res){
    var req_path = url.parse(req.url).path;
    var filepath = __dirname + req_path;

    fs.exists(filepath, function(exists){
        if(exists){
            fs.stat(filepath, function(err, stats){
                if(err){
                    res.writeHead(500, {‘Content-Type‘ : ‘text/html;charset=utf8‘});
                    res.end(‘<div styel="color:black;font-size:22px;">server error</div>‘);
                }else{
                    if(stats.isFile()){
                        var file = fs.createReadStream(filepath);
                        res.writeHead(200, {‘Content-Type‘ : ‘text/html;charset=utf8‘});
                        file.pipe(res);
                    }else{
                        fs.readdir(filepath, function(err, files){
                            var str = ‘‘;
                            for(var i in files){
                                str += files[i] + ‘<br/>‘;
                            }
                            res.writeHead(200, {‘Content-Type‘ : ‘text/html;charset=utf8‘});
                            res.write(str);
                        });
                    }
                }
            });
        }else{
            res.writeHead(404, {‘Content-Type‘ : ‘text/html;charset=utf8‘});
            res.end(‘<div styel="color:black;font-size:22px;">404 not found</div>‘);
        }
    });
});
server.listen(‘9090‘, ‘127.0.0.1‘);
时间: 2024-10-01 04:04:59

nodejs实现一个简单的 HTTP静态文件服务器(一)的相关文章

用nodejs搭建一个简单的服务器

使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安装成功 [常用命令] 切换盘符 d:进入文件夹 cd nodejs返回上一级目录 cd..清屏 cls展示目录 dir复制文件名 选中右键--复制历史操作 上箭头 执行文件 node 文件名(在文件文件夹目录中)停止命令行 ctrl+c nodejs可以使用的ECMAScript.读写文件.数据库操

用nodejs搭建一个简单的服务监听程序

作为一个从业三年左右的,并且从事过半年左右PHP开发工作的前端,对于后台,尤其是对以js语言进行开发的nodejs,那是比较有兴趣的,虽然本身并没有接触过相关的工作,只是自己私下做的一下小实验,但是还是记录一下方便以后复习! 今天主要记录一下,很久以前用nodejs制作一个简单的服务监听程序的一些过程! 大家都知道,通过nodejs可以对前台请求进行监听,这里就放一个官网的hello world例子吧: var http = require('http'); http.createServer(

使用 Nodejs 搭建一个简单的Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.

nodejs实现一个简单的爬虫

nodejs是js语言,实现一个爬出非常的方便. 步骤 1. 使用nodejs的request模块,获取目标页面的html代码:https://github.com/request/request 2. 使用cheerio模块对html代码做处理(cheerio类似jQuery的语法,所以好用又方便)https://github.com/cheeriojs/cheerio 下面我们借助exprerss来做一个简单的nodejs爬虫系统.http://www.expressjs.com.cn/ 具

如何使用nodejs搭建一个简单的https服务器

为什么要使用HTTPS服务 个人隐私以及安全的原因 https是未来的趋势 HTTPS的组成 HTTPS = HTTP + TLS/SSL 简单来说在http上套上了一层加密的ssl层 HTTPS的基本原理 Nodejs搭建HTTPS服务 生成HTTPS证书 引入HTTPS模块 指定证书位置,并创建https服务 实战案例 去网上去申请https的证书 vim https_server.js "use strict" // 引入模块 var https = require("

使用http-server (nodeJs)期一个简单的服务

1.首先建一个空文件夹 2.直接在该目录下,全局安装http-server 3.在新建的文件夹中放你前端打包好的项目文件夹. 4.然后在输入hs ./pub 5.此时服务启动,可以在同一局域网访问项目.http://172.16.17.225:8080/index.html  注:http-server   不定义路径 默认文件夹是 public. 据说会默认执行我们文件目录下的index.html文件,但是博主没能测试成功(是直接端口后手动  /index.html). 6. 下面是githu

从零开始,在windows上用nodejs搭建一个静态文件服务器

首先安装nodejs: 新建一个node文件夹 下载node.exe到该文件夹 下载npm然后解压到该文件夹 现在node文件夹是这样的 把该目录加入到path环境变量 在命令行执行 node -v npm -v 如果得到了版本号则表示nodejs安装完成 在命令行中执行 npm config set registry https://registry.npm.taobao.org 以后安装nodejs模块 都会从淘宝的npm镜像中下载 如果想要发布自己的模块到npm要先把npm的registr

用Nodejs 十分钟快速编写简单静态文件服务器

学了几天Nodejs 后我又干上了前端的活.这次遇到的问题是,我想在不同的设备上方便的查看我编写的网页,很自然的就想到要是能在本地搭建一个简单的http服务器的话,那局域网内的所有设备都可以访问了,这可是极好的.于是趁热马上动手实现一个简单服务器. 需求:访问http://192.168.1.100/index.html 可以返回指定网页及其涉及的资源(css,js,图片文件等) function start(route, handle) { http.createServer(function

[转载]用NodeJS打造你的静态文件服务器

http://www.open-open.com/bbs/view/1321344823593 本文是我对V5Node项目的总结,该项目的特性包括: 项目大多数的文件都是属于静态文件,只有数据部分存在动态请求. 数据部分的请求都呈现为RESTful的特性. 所以项目主要包含两个部分就是静态服务器和RESTful服务器.本文讲的是静态文件服务器部分. 既是一个新的项目,那么创建v5node目录是应该的.既是一个Node应用,创建一个app.js文件也是应该的. 我们的app.js文件里的结构很明确