node.js - nodejs资源加载demo,求指导
伊谢尔伦
伊谢尔伦 2017-04-17 13:10:33
[Node.js讨论组]

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

  • assets

    • css

      • css文件

    • js

      • js文件

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"
};

求指导,求吐槽

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号