nodejs使用nodejs创建简单的静态文件服务器
2014-11-01 22:41
866 查看
来自:http://blog.csdn.net/zxsrendong/article/details/16804867
在开始之前,应该好好规划一下项目的文件目录了。我的目录结构如下:
assets放置网站的静态文件css,js,img等;common存放项目的配置文件和一些通用文件;server存放服务处理文件,将要创建的静态文件服务就是放在此目录中; tpl放置的是模板文件也就是网页文件。
文件的下载格式主要是由'Content-Type'的值决定的,要想下载的文件能够正常工作就应该正确的设置不同文件的'Content-Type'值。mime.js文件存放了一些常用mime值:
先来看server.js和FServer.js的类容:
上面引入了nodejs的内置模块http、fs、url、path,config和FServer是自定义模块,要读取文件首先要知道文件在磁盘上是否存在,还应当知道文件的类型才能达到想要的效果。运行程序可以发现css和javascript都下载正确,并且css效果在页面上正确渲染(javascript还没有写效果)
在开始之前,应该好好规划一下项目的文件目录了。我的目录结构如下:
assets放置网站的静态文件css,js,img等;common存放项目的配置文件和一些通用文件;server存放服务处理文件,将要创建的静态文件服务就是放在此目录中; tpl放置的是模板文件也就是网页文件。
文件的下载格式主要是由'Content-Type'的值决定的,要想下载的文件能够正常工作就应该正确的设置不同文件的'Content-Type'值。mime.js文件存放了一些常用mime值:
exports.mime = { "html" : "text/html", "css" : "text/css", "js" : "text/javascript", "json" : "application/json", "ico" : "image/x-icon", "gif" : "image/gif", "jpeg" : "image/jpeg", "jpg" : "image/jpeg", "png" : "image/png", "pdf" : "application/pdf", "svg" : "image/svg+xml", "swf" : "application/x-shockwave-flash", "tiff" : "image/tiff", "txt" : "text/plain", "wav" : "audio/x-wav", "wma" : "audio/x-ms-wma", "wmv" : "video/x-ms-wmv", "xml" : "text/xml" };
先来看server.js和FServer.js的类容:
// server.js var config = require('./common/config'); var http = require('http'); var fs = require('fs'); var url = require('url'); var path = require('path'); var FServer = require('./server/FServer'); function index(){ var indexPath = config.ui + '/index.html'; fs.exists(indexPath, function(exists){ if( !exists ) { throw err; } else { fs.readFile(indexPath, function(err, data){ if (err) { throw err; } else { function onRequest(req, res){ // 取得文件路径 var pathname = url.parse(req.url).pathname; // 获取文件扩展名(包含前置.) var extname = path.extname( pathname ); var type = extname.slice(1); // 获取下载文件在磁盘上的路径, var realPath = config.root + pathname; if ( extname === '' ) { res.writeHead(200, {'Content-Type':'text/html'}); res.write(data); res.end(); } else { FServer.filesLoad(realPath, type, req, res); } } http.createServer(onRequest).listen(config.port); } }) } }) } exports.index = index; // FServer.js var fs = require('fs'); var mime = require('../common/mime').mime; function filesLoad(filePath, type, req, res){ fs.exists(filePath, function(exists){ if ( !exists ) { res.writeHead(404, {'Content-Type': 'text/plain'}); // res.write(); res.end(); } else { fs.readFile(filePath, 'binary', function(err, file){ if ( err ) { res.writeHead(500, {'Content-Type': 'text/plain'}); // res.write(); res.end(); } else { res.writeHead(200, {'Content-Type': mime[type]}); res.write(file, 'binary'); res.end(); } }); } }) } exports.filesLoad = filesLoad;
上面引入了nodejs的内置模块http、fs、url、path,config和FServer是自定义模块,要读取文件首先要知道文件在磁盘上是否存在,还应当知道文件的类型才能达到想要的效果。运行程序可以发现css和javascript都下载正确,并且css效果在页面上正确渲染(javascript还没有写效果)
相关文章推荐
- nodejs使用nodejs创建简单的静态文件服务器
- nodejs使用nodejs创建简单的静态文件服务器
- 使用nodejs、Python写的一个简易HTTP静态文件服务器
- NodeJS 创建简单的静态服务器
- nodejs 创建静态文件服务器
- nodejs生成的证书转换成cer文件便于在ios中使用--附Nodejs创建HTTPS服务器,并且生成证书
- 一个简单的基于nodejs的静态文件服务器
- 使用Nodejs快速搭建一个的本地静态文件服务器
- 在windows上用nodejs搭建静态文件服务器的简单方法
- [Nodejs]十分钟快速编写简单静态文件服务器
- 使用nodejs、Python写的一个简易HTTP静态文件服务器
- 使用Python或Node创建简单web服务器和FTP服务器实现文件共享
- Nodejs实现web静态服务器对多媒体文件的支持
- 用NodeJS打造你的静态文件服务器
- 使用rssh创建一个安全的文件服务器
- 使用Subversion创建一个简单的svn服务器
- 如何创建和读取excel文件-poi的简单使用(一)
- 使用简单的wcf文件实现上传,下载文件到服务器
- nodeJS 静态文件服务器源码
- 用NodeJS打造你的静态文件服务器 <转载>