• Shell 简单构建 Node web服务器


    .git bash 执行代码生成:

    ./makeJs.sh

    生成文件如下:

    访问:http://127.0.0.1:3030/index.html

    makeJs.sh  代码如下:

    #create makePost.sh
    
    post=./makePost.sh
    if [ -f "$post" ];then
    	echo "$post 文件己存在"
    else
    (
    cat <<EOF
    count=1
    while [ "$#" -ge "1" ];do
        echo "参数序号为 $count 是 $1"
    	curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} $1
    
        let count=count+1
        shift
    done
    EOF
    ) > $post
    fi
    
    #create index.html
    index=./index.html
    if [ -f "$index" ];then
    	echo "$index 文件己存在"
    else
    (
    cat <<EOF
      testing
    EOF
    ) > $index
    fi
    
    #create index.js
    file=./index.js
    if [ -f "$file" ];then
    echo "文件己存在!无法生成 $file"
    else
    (
    cat <<EOF
    var http=require('http');
    var fs = require('fs');
    var url = require('url');
     
    http.createServer(function(request,response) {
        var pathname= url.parse(request.url).pathname;
        console.log("Request for "+ pathname + "  received.");
        fs.readFile(pathname.substr(1),function(err, data) {
            if(err) {
                response.writeHead(404,{'Content-Type': 'text/html'});
            }
            else {
                response.writeHead(200,{'Content-Type': 'text/html'});
                response.write(data.toString());
            }
            response.end();
        });
    }).listen(3030);
     
    console.log('Server running at http://127.0.0.1:3030/index.html');
    EOF
    ) > $file
    
    echo "文件创建成功"
    node index.js
    
    fi
    

      

    makeJs.sh 解决服务资源CSS/JS/other  文件载入:(推荐)

    // --------
    #create makePost.sh
    
    post=./makePost.sh
    if [ -f "$post" ];then
    echo "$post 文件己存在"
    else
    (
    cat <<EOF
    count=1
    while [ "$#" -ge "1" ];do
        echo "参数序号为 $count 是 $1"
    curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} $1
    
    let count=count+1
    shift
    done
    EOF
    ) > $post
    fi
    
    #create index.html
    index=./index.html
    if [ -f "$index" ];then
    echo "$index 文件己存在"
    else
    (
    cat <<EOF
    testing
    EOF
    ) > $index
    fi
    
    #create index.js
    file=./index.js
    if [ -f "$file" ];then
    echo "文件己存在!无法生成 $file"
    else
    (
    cat <<EOF
    
    var http = require('http');
    var fs = require('fs');
    
    //主要思想就是任何一个静态文件也应该做响应,一个获取静态文件都应当请求来处理,这是主要思想
    var server = http.createServer();
    
    var handlerequest = function(request,respone){
        var url = request.url,ns;
        // respone.writeHead(200,{'Content-Type':'text/html'});
        if(url=='/'){
            respone.writeHead(200,{'Content-Type':'text/html'});
            ns = fs.readFile('./index.html', function(err, data) {
                if (err) {
                    console.error(err);
                    return;
                }
                respone.end(data);
            });
            //respone.end();
        }else if(url != '/'){
            var surl = '.'+url;
            var type = surl.substr(surl.lastIndexOf(".")+1,surl.length);
            respone.writeHead(200,{'Content-type':"text/"+type});
            // respone.writeHead(200,{'Content-Type':'text/css'});
            ns = fs.readFile(surl, function(err, data) {
                if (err) {
                    console.error(err);
                    return;
                }
                respone.end(data);
            });
        }
    };
    server.on('request',handlerequest);
    
    server.listen(3030,function(){
        console.log('Server running at http://127.0.0.1:3030/index.html');
    });
    
    EOF
    ) > $file
    
    echo "文件创建成功"
    node index.js
    
    fi

    Post 接口批量测试

    ./makePost.sh http://192.168.3.52/ad/customer/res
    

      使用 curl 测试post请求json接口
       

    ./makePost.sh
    count=1
    while [ $# -ge "1" ];do
    echo "参数序号为 $count 是"
    curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} $1
    let count=count+1
    shift
    done
    

      

  • 相关阅读:
    WCF HelpPage 和自动根据头返回JSON XML
    Jquery及插件 应用
    Autofac Mvc Webapi注入笔记
    TransactionScope 出错 与基础事务管理器的通信失败
    工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)
    Asp.net的异步处理模型Asp.net的异步如何提高服务器的吞吐量
    WCF 契约定义命名空间 的疑问
    常用的18个人情世故
    StatusCode
    web标准常见问题集合
  • 原文地址:https://www.cnblogs.com/q1104460935/p/10028859.html
Copyright © 2020-2023  润新知