您的位置:首页 > Web前端 > Node.js

node.js之简单构建文件服务器

2016-09-28 17:47 513 查看
在浏览器输入
http://localhost:8080/
时,会返回404,原因是程序识别出HTTP请求的不是文件,而是目录。请修改
file_server.js
,如果遇到请求的路径是目录,则自动在目录下依次搜索
index.html
default.html
,如果找到了,就返回HTML文件的内容。

'use strict'

var
fs = require('fs'),
url = require('url'),
path = require('path'),
http = require('http');

var root = path.resolve(process.argv[2] || '.');

console.log(root);

var server = http.createServer(function(request,response){
//console.log(url.parse(request.url))
var pathname = url.parse(request.url).pathname;
console.log(request.url)
var filepath = path.join(root,pathname);
console.log(filepath)
fs.stat(filepath,function(err,stats){
if(!err && stats.isFile()){
console.log('200' + request.url);
response.writeHead(200);
//console.log(response);
fs.createReadStream(filepath).pipe(response);
}else{
if(stats.isDirectory()){
console.log('dir yes')
fs.readdir(filepath,function(err,files){
if(err){
console.log('readdir error');
}else{
files.forEach(function(f){
if(f.indexOf('index.html')===0 || f.indexOf('default.html') ===0){
fs.createReadStream(path.join(filepath,f)).pipe(response);}
})
}
})
}else{
console.log('dir err')
}
}
})
})

server.listen(8080);
console.log('start.....');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node.js html