zoukankan      html  css  js  c++  java
  • node 创建静态服务器并自动打开浏览器

    node 作为一门偏向后端的技术,提供了可以让我们js 在服务器上运行的平台,为我们前端工程师实现项目前端工程化,带来了众多便利。同时,它也可以很方便的创建静态服务器,可以直接连接数据库、、、实现多种功能,可以说,对于一个前端工程师如果精通了 node ,那么开发效率可以大大的提高,下面就是一段 利用 node 搭建的一个项目服务器,来启动项目并在默认浏览器里自动打开。

    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;
                    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(8889, "127.0.0.1");  // 监听端口
    
    console.log("Server running at http://127.0.0.1:8889/");
    
    cp.exec('start http://127.0.0.1:8889/');  // 自动打开默认浏览器
    

      

  • 相关阅读:
    不定方程(Exgcd)
    [模板]乘法逆元
    STL-Deque(双端队列)与单调队列的实现
    最优得分 score
    摆书 book
    [模板]树链剖分
    [模板]Splay
    NOIP2013 货车运输
    Java的类类型和类的动态加载
    Java:搜索特定后缀名的文件
  • 原文地址:https://www.cnblogs.com/cmyoung/p/8583246.html
Copyright © 2011-2022 走看看