回调的应用
在Nodejs中大部分的情况是各种异步操作,但是转为同步又对性能方面有所降低,那么利用回调是一个很不过的选择
例如:利用fs读取一个json文件 用读到的数据进行操作
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path');
http.createServer(function (req,res) {
var pathname = url.parse(req.url).pathname;
if(pathname=='/'){pathname = '/index.html'}
fs.readFile('.'+pathname,function (err,data) {
if(err){
fs.readFile('./404.html',function (err,data) {
res.writeHead(404,{'Content-Type':'text/html;charset=utf8'});
res.end(data);
return;
})
}
getMime(pathname,function (exmime) {
res.writeHead(200,{'Content-Type':exmime+';charset=utf8'});
res.end(data)
})
})
}).listen(5000);
function getMime(exmime,cb) { //精髓利用回调
var str = path.extname(exmime);
fs.readFile('./mime.json',function (err,data) { //这个就是mime类型 就是请求头的类型
if(err) throw err;
var result = JSON.parse(data);
var cbResul = result ||'text/plain'; //给一个默认值!
cb(cbResul);
})
}
网友评论