Node.js开发入门—HTTP文件服务器

本文介绍了如何使用Node.js创建一个简单的HTTP文件服务器,涉及File System模块、ReadStream、EventEmitter的使用。通过fs.stat获取文件状态,利用fs.createReadStream处理文件流,并通过EventEmitter监听数据读取和错误事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HelloWorld示例只有演示意义,这次我们来搞一个实际的例子:文件服务器。我们使用Node.js创建一个HTTP协议的文件服务器,你可以使用浏览器或其它下载工具到文件服务器上下载文件。

用Node.js实现的HTTP文件服务器,比我在Qt网络编程实战之HTTP服务器视频课程里用Qt实现的版本,复杂度要小太多太多了。

为了读取文件,我们会用到File System模块(名字是”fs”),Stream,我们还要分析URL,区别HTTP方法,还会用到EventEmitter。

文件服务器FileServer的代码

先上代码吧,依然是简单的:

// 引入http模块
var http = require("http"); 
var fs = require("fs");

// 创建server,指定处理客户端请求的函数
http.createServer(
    function(request, response) {
        //判断HTTP方法,只处理GET  
        if(request.method != "GET"){
            response.writeHead(403);
            response.end();
            return null;
        }

        //此处也可使用URL模块来分析URL(https://nodejs.org/api/url.html)
        var sep = request.url.indexOf('?');
        var filePath = sep < 0 ? request.url : request.url.slice(0, sep);
        console.log("GET file: " + filePath);

        //当文件存在时发送数据给客户端,否则404
        var
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foruok

你可以选择打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值