zoukankan      html  css  js  c++  java
  • 第六课 自己实现路由改进,针对不同请求的路径进行响应

    1 server.js

    var http = require('http');
    var url = require('url');
    function start(route,handler)
    {
    function onRequest(req,res)
    {
    var pathName = url.parse(req.url).pathname;
    //客户端页面传递过来的route 函数
    route(pathName,handler,res);
    }
    http.createServer(onRequest).listen(5000);
    console.log('Server Started');
    }

    exports.start = start;

    2 route.js

    function route(pathName,handler,res)
    {
    console.log('router user request url:'+pathName+' ');
    if(typeof handler[pathName]==='function')
    {
    handler[pathName](res);
    }else{
    console.log('No request handler found for '+pathName);
    }
    }
    exports.route = route;

    3 requestHandlers.js

    var exec = require('child_process').exec;
    //使用 response直接输出 就不会阻塞其他请求
    function start(res){
    exec("ls -lah",function(error, stdout, stderr){
    res.writeHead(200,{"Content-Type":"text/plain"});
    res.write('start...');
    res.write(stdout);
    res.write('end...');
    res.end();
    });
    }

    function upload(res){
    res.writeHead(200,{"Content-Type":"text/plain"});
    res.write(stdout);
    res.end();
    }

    exports.start = start;
    exports.upload = upload;

    4 index.js

    var server = require('./server');
    var route = require('./route');
    var requestHandlers = require('./requestHandlers');
    var handle ={}
    handle["/"]= requestHandlers.start;
    handle["/start"]= requestHandlers.start;
    handle["/upload"]= requestHandlers.upload;

    server.start(route.route,handle);

    //分析 从index.js开始 handle对象存储的是 路由字符串和方法指针

    server.js 取得当前用户请求的路径 来执行 路径对应的方法 实际执行的是requestHandlers中的方法

  • 相关阅读:
    input上传限定文件类型
    扫描二维码自动识别手机系统(Android/IOS)
    css/html/Javascript
    移动端容易碰到的点击穿透的坑
    洛谷P3387 【模板】缩点
    洛谷P1137 旅行计划
    洛谷P2324 [SCOI2005]骑士精神
    洛谷P2571 [SCOI2010]传送带
    BZOJ4300: 绝世好题
    [洛谷P1966] 火柴排队
  • 原文地址:https://www.cnblogs.com/3dianpomian/p/4847355.html
Copyright © 2011-2022 走看看