Node.js快速创建一个访问html文件的服务器

var http = require('http'), // 引入需要的模块
  fs = require('fs'), //引入文件读取模块
  cp = require('child_process'), // 可自动打开浏览器模块
  url = require("url"),
  path = require("path");


http.createServer(function (req, res) {
  var pathname = __dirname + url.parse(req.url).pathname; // 对于文件路径统一处理
  if (path.extname(pathname) == "") {
    pathname += "/html/"; // 欲打开文件的目录
  }
  if (pathname.charAt(pathname.length - 1) == "/") {
    pathname += "index.html"; // 默认打开的文件
  }
  fs.exists(pathname, function (exists) {
    if (exists) {
      switch (path.extname(pathname)) { // 不同文件返回不同类型
        case ".html":
          res.writeHead(200, {
            "Content-Type": "text/html"
          });
          break;
        case ".js":
          res.writeHead(200, {
            "Content-Type": "text/javascript"
          });
          break;
        case ".css":
          res.writeHead(200, {
            "Content-Type": "text/css"
          });
          break;
        case ".gif":
          res.writeHead(200, {
            "Content-Type": "image/gif"
          });
          break;
        case ".jpg":
          res.writeHead(200, {
            "Content-Type": "image/jpeg"
          });
          break;
        case ".png":
          res.writeHead(200, {
            "Content-Type": "image/png"
          });
          break;
        case ".json":
          res.writeHead(200, {
            "Content-Type": "text/plain"
          })
          break;
        default:
          res.writeHead(200, {
            "Content-Type": "application/octet-stream"
          });
      }
      fs.readFile(pathname, function (err, data) {
        console.log((new Date()).toLocaleString() + " " + pathname);
        res.end(data);
      });
    } else { // 找不到目录 时的处理
      res.writeHead(404, {
        "Content-Type": "text/html"
      });
      res.end("<h1>404 Not Found</h1>");
    }
  });

}).listen(8088, "127.0.0.1"); // 监听端口

console.log("Server running at http://127.0.0.1:8088/");

cp.exec('start http://127.0.0.1:8088/html/project.html'); // 自动打开默认浏览器

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值