234234234

nodejs 一个简单的web服务器,用于前端自己快速测试部署

(node环境)启动命令:node node-web-server.js

 

 

var http=require('http');
var fs = require('fs');
var url = require('url');
//创建服务器
http.createServer(function(request,response) {

  //后端设置允许跨域
  response. setHeader("Access-Control-Allow-Origin","*");

  var parseUrl = url.parse(request.url);
  //解析请求,包括文件名
  // console.log(parseUrl);
  // var parseUrl = url.parse(request.url);
  var pathname= decodeURI(parseUrl.pathname);

  //输出请求的文件名
  console.log("Request for "+ pathname + "  received.");
//获取后缀,判断是js还是css文件,如果目录结构不同,此处需要修改
  var firstDir = pathname && pathname.split('/')[1];
  // var firstDir = pathname && pathname.split('/')[1];
  var suffix = pathname && pathname.split('.').slice(-1).toString();

  const suffix2Mime = {
    'css': 'text/css;charset=utf-8',
    'js': 'application/x-javascript;charset=utf-8',
    'png': 'image/png',
    'xml': 'text/xml',
    'xhtml': 'application/xhtml+xml',
    'txt': 'text/plain',
    'rtf': 'application/rtf',
    'pdf': 'application/pdf',
    'gif': 'image/gif',
    'jpeg': 'image/jpeg',
    'au': 'audio/basic',
    'midi': 'audio/midi;audio/x-midi',
    'ra': 'audio/x-pn-realaudio',
    'ram': 'audio/x-pn-realaudio',
    'mpg': 'video/mpeg',
    'mpeg': 'video/mpeg',
    'avi': 'video/x-msvideo',
    'gz': 'application/x-gzip',
    'tar': 'application/x-tar',
    // 'tar': 'application/octet-stream',
  };
  // 获取请求文件的对应类型
  var ContentType = {'Content-Type': suffix2Mime[suffix] || 'text/html;charset=utf-8'};
  // console.log(suffix, ContentType);
  //从文件系统中去请求的文件内容
  fs.readFile(pathname.substr(1),function(err, data) {
    if(err) {
      console.log(err);
      response.writeHead(404, ContentType);
    }
    else {
      //HTTP 状态码 200 : OK
      response.writeHead(200, ContentType);
      //写会回相应内容
      if (['png'].includes(suffix)) {
        response.write(data, "binary");
      } else {
        response.write(data.toString());
      }
    }
    //发送响应数据
    response.end();
  });
}).listen(8080);

console.log('Server running at http://127.0.0.1:8080/'); 

 

  

 

  

posted @ 2021-11-16 09:05  你若愿意,我一定去  阅读(205)  评论(0编辑  收藏  举报
23423423423