node.js之简单构建文件服务器
2016-09-28 17:47
513 查看
在浏览器输入
'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.....');
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,js,css,json等文件)
- node.js搭建简单静态文件服务器
- Node.JS入门--通过构建一个上传文件的服务器来学习Node.JS
- 【深入浅出Node.js系列十】一个简单的静态文件合并服务器
- Node.js实战 建立简单的Web服务器
- Node.js用6行代码1个JS文件搭建一个HTTP静态服务器
- 分享:Node.js静态文件服务器实战
- Node.js开发入门—HTTP文件服务器
- 学习用node.js建立一个简单的web服务器
- Node.js实战:建立简单的Web服务器
- Node.js静态文件服务器实战[转]
- 基于Node.js的文件下载服务器
- Node.js实战 建立简单的Web服务器
- Node.js用6行代码1个JS文件搭建一个HTTP静态服务器
- Node.js开发环境的构建及开发所需的一些工具的简单介绍(nvm、npm、supervisor)
- Node.js实战 建立简单的Web服务器
- 详解Node.js API系列 Http模块(1) 构造一个简单的静态页服务器
- Nodejs学习笔记(七)--- Node.js + Express 构建网站简单示例
- nodejs + jquery Mobile构建一个简单的移动web ( 服务端index.js)
- 一个简单的基于node.js的TCP服务器和基于C++的TCP客户端通信示例程序