node 读取文件,异步模式用回调函数变同步
2017-06-06 10:44
330 查看
node,特性1:回调函数里套回调函数,特性2:实现顶层路由设计。
var http = require("http");
var fs = require("fs");
var url = require("url");
var path = require("path");
var server = http.createServer(function(req,res){
var pathname = url.parse(req.url).pathname;
if(pathname.indexOf(".") == -1){
pathname += "/index.html";
}
//输入的网址是127.0.0.1/images/logo.png
//实际请求的是./static/images/logo.png
var fileURL = "./" + path.normalize("./static/" + pathname);
//得到拓展名
var extname = path.extname(pathname);
//把文件读出来
fs.readFile(fileURL,function(err,data){
//读完之后做的事情
if(err){
//文件不存在
res.writeHead(404,{"Content-Type":"text/html;charset=UTF8"})
res.end("404,页面没有找到");
}
//读完之后做的事情
getMime(extname,function(mime){
res.writeHead(200,{"Content-Type":mime})
res.end(data);
});
});
});
server.listen(80,"127.0.0.1");
function getMime(extname,callback){
//读取mime.json文件,得到JSON,根据extname key ,返回对应的value
//读取文件
fs.readFile("./mime.json",function(err,data){
if(err){
throw Error("找不到mime.json文件!");
}
//转成JSON
var mimeJSON = JSON.parse(data);
var mime = mimeJSON[extname] || "text/plain";
//执行回调函数,mime类型字符串,就是它的参数
callback(mime);
});
}
var http = require("http");
var fs = require("fs");
var url = require("url");
var path = require("path");
var server = http.createServer(function(req,res){
var pathname = url.parse(req.url).pathname;
if(pathname.indexOf(".") == -1){
pathname += "/index.html";
}
//输入的网址是127.0.0.1/images/logo.png
//实际请求的是./static/images/logo.png
var fileURL = "./" + path.normalize("./static/" + pathname);
//得到拓展名
var extname = path.extname(pathname);
//把文件读出来
fs.readFile(fileURL,function(err,data){
//读完之后做的事情
if(err){
//文件不存在
res.writeHead(404,{"Content-Type":"text/html;charset=UTF8"})
res.end("404,页面没有找到");
}
//读完之后做的事情
getMime(extname,function(mime){
res.writeHead(200,{"Content-Type":mime})
res.end(data);
});
});
});
server.listen(80,"127.0.0.1");
function getMime(extname,callback){
//读取mime.json文件,得到JSON,根据extname key ,返回对应的value
//读取文件
fs.readFile("./mime.json",function(err,data){
if(err){
throw Error("找不到mime.json文件!");
}
//转成JSON
var mimeJSON = JSON.parse(data);
var mime = mimeJSON[extname] || "text/plain";
//执行回调函数,mime类型字符串,就是它的参数
callback(mime);
});
}
相关文章推荐
- node 异步与同步读取文件
- node 操作文件流 fs 同步与异步 流式文件的写入与读取
- Node.js文件的同步异步事件循环
- Node.js的读取文件的异步过程基础的讲解
- node 异步读取文件路径处理
- node 异步变同步,判断文件夹内文件/夹 是否是文件夹**运用闭包算法
- nodejs异步读取文件与同步读取文件的区别
- Node.js学习-----------异步文件读取
- Node.js环境中同步分行读取文件
- D3.js中强制异步文件读取同步的几种方法
- node批量读取文件时异步变同步的方法分享
- DICOM医学图像处理:Dcmtk与fo-dicom保存文件的不同设计模式之“同步VS异步”+“单线程VS多线程”
- node 异步/同步文件删除
- C#源码学习之---异步读取文件
- 使用单例模式读取Properties文件
- 半同步半异步模式
- DWR 同步模式和异步模式
- 单例模式读取Properties文件
- 编译模式对odx, odx.cs文件同步关系的影响
- 半同步半异步模式以及Leader_Follwer模式