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