Node.js静态资源类文件请求处理
来源:互联网 发布:xp 在端口23连接失败 编辑:程序博客网 时间:2024/04/28 01:37
转至黄华丹的Node.js开发实战讲解。了解资源的请求协议,以及cookie处理
/**顶层文件夹resource*静态的网页 创建一个view的文件夹*静态的CSS 创建一个style的文件夹*静态的图片 创建一个image的文件夹*//** * version:2 添加了资源文件的缓存机制 * version3: 添加了jade处理*/var fs=require('fs');var CACHE_TIME=24*60*60*1000;//pathname表示服务器的请求,realPath表示实际路径exports.staticManage=function(pathname,realPath,res,req){fs.exists(realPath,function(exists){if(!exists){console.log(realPath);res.writeHead(404,{'Content-Type':'text/plain'});res.write('this request URL'+pathname+"was not found on this server");res.end();}else{//获取文件的最后修改时间var fileInfo=fs.statSync(realPath);var lastModified=fileInfo.mtime.toUTCString();var pointPosition=pathname.lastIndexOf('.');var mmieString=pathname.substring(pointPosition+1);var mimeType='';var cacheflg=false;//这里可以扩展MIME的类型switch (mmieString){case 'css':mimeType="text/css";cacheflg=true;break;case 'png':cacheflg=true;mimeType='image/png';break;case 'jade':mimeType="text/html";break;default:mimeType='text/plain';}//设置缓存if(cacheflg==true){var date=new Date();//can't set headers after they are sentdate.setTime(date.getTime()+CACHE_TIME);res.setHeader('Expires',date.toUTCString());res.setHeader('Cache-Control','max-age='+CACHE_TIME);}if(req.headers['if-modified-since'] && lastModified==req.headers['if-modified-since']){res.writeHead(304,"Not Modified");res.end();}else{/** *这里添加了jade处理 */if(mmieString=='jade'){res.render(pathname);return ;}fs.readFile(realPath,'binary',function(err,file){if(err){res.writeHead(500,{'Content-Type':'text/plain'});res.end(err);}else{res.setHeader('Last-Modified',lastModified);res.writeHead(200,{'Content-Type':mimeType});res.write(file,"binary");res.end();}});}}})}
0 0
- Node.js静态资源类文件请求处理
- Node JS 静态资源处理程序
- 【Node.js-3】express介绍、express-static处理静态文件请求、链式操作next()、中间件、cookie、session
- SpringMVC处理静态资源请求
- node js静态资源服务器代码
- 使用Node.js搭建静态资源服务器
- springboot处理静态资源文件
- node.js文件上传处理
- Node.js处理excel文件
- node.js处理get和post请求
- node.js之服务器如何处理请求
- Node.js WEB服务器静态文件托管
- node express限制静态资源文件后缀访问
- 解决springmvc请求丢失js等静态资源的方法
- Node.js零起点开发(六)-处理POST请求
- Node.js 处理post请求(表单提交)
- node.js中get与post请求的处理
- node处理get请求
- Java 中使用内存映射文件需要考虑的 10 个问题
- 线性表链式存储(静态链表)及其12种操作的实现
- 链表概述
- leetcode swap nodes in pairs
- C & Prime
- Node.js静态资源类文件请求处理
- 线性表顺序存储(数组)及其15种操作的实现
- 单链表插入删除元素时间复杂度探究
- c/c++学习工具 CodeBlocksIDE
- Swift XXXLiteralConvertible 协议的使用
- .post简化.ajax方式提交form表单
- android系统深入研究
- LeetCode - Container With Most Water
- 正则表达式