NodeJS的灵魂--回调

2017-12-11  本文已影响0人  十年之后_b94a

回调的应用

在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);
    })
}
上一篇 下一篇

猜你喜欢

热点阅读