• 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/');  // 自动打开默认浏览器
    

      

  • 相关阅读:
    vue 组件传值
    ES6 解构赋值
    JS filter的使用
    FormData实现文件上传
    vue+element 表格导出Excel文件
    vue2.0 element-ui中input的@keyup.native.enter='onQuery'回车查询刷新整个表单的解决办法
    vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效解决方法
    JavaScript正则表达式检验手机号码、邮箱、ip地址等
    Vue 2.0 pagination分页组件
    angular环境
  • 原文地址:https://www.cnblogs.com/cmyoung/p/8583246.html
Copyright © 2020-2023  润新知