首页 > nodejs资源加载demo,求指导

nodejs资源加载demo,求指导

开始学习node,写了一个简单资源加载的demo,文件夹的是这样的

node的文件是mine.js和route.js 代码如下

route.js

var http = require('http');
var path = require('path');
var url = require('url');
var fs = require('fs');
var mine = require('mine').types; //类型
// console.log(mine);

http.createServer(function(request, response) {
  var pathname = url.parse(request.url).pathname; //去得url
  var ext = path.extname(pathname); //取得扩展名
  ext = ext ? ext.slice(1) : 'unknown'; //取得类型
  var re = /^\/assets/; //判断前缀
  if (re.exec(pathname)){
    pathname = pathname.slice(1); //去掉 /
    //读取文件
    fs.readFile(pathname,function (err, file){
      if (err) {
        response.writeHead(404,{"Content-Type": "text/plain"});
        err = new Buffer(JSON.stringify(err)); //打印错误信息
        response.end(err);
      } else {
        //输出文件
        response.writeHead(200,{"Content-Type": mine[ext]});
        response.write(file);
        response.end();
      }
    });
  } else {
    //404
    response.writeHead(404,{"Content-Type": "text/plain"});
    response.end("404");
  }
  //console.log(pathname);
}).listen(8888);

console.log("star");

mine.js

//文件类型
exports.types = {
  "css": "text/css",
  "gif": "image/gif",
  "html": "text/html",
  "ico": "image/x-icon",
  "jpeg": "image/jpeg",
  "jpg": "image/jpeg",
  "js": "text/javascript",
  "json": "application/json",
  "pdf": "application/pdf",
  "png": "image/png",
  "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"
};

求指导,求吐槽

【热门文章】
【热门文章】