Node.Js - 路由Router

参考博客:Node初学者入门,一本全面的NodeJS教程


Node.Js的环境搭建略过,关于路由需要以下4个文件:

  • server.js
  • index.js
  • router.js
  • requestHandler.js

//server.js
var http = require("http");
var url = require("url");

function start(route, handle){
  function onRequest(request, response){
    var pathname = url.parse(request.url).pathname;
    console.log("Request for "+ pathname +" received.");

    route(handle, pathname);

    response.writeHead(200,{"Content-Type":"text/plain"});
    response.write("Hello World");
    response.end();
  }

  http.createServer(onRequest).listen(8888);
  console.log("Server has started.");
}

exports.start = start;

//index.js
var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");

var handle ={}
handle["/"]= requestHandlers.start;
handle["/start"]= requestHandlers.start;
handle["/upload"]= requestHandlers.upload;

server.start(router.route, handle);

//router.js
function route(handle, pathname){
  console.log("About to route a request for "+ pathname);
  if(typeof handle[pathname]==='function'){
    handle[pathname]();
  }else{
    console.log("No request handler found for "+ pathname);
  }
}

exports.route = route;

//requestHandler.js
function start(){
  console.log("*******Request handler 'start' was called.*******");
}

function upload(){
  console.log("*******Request handler 'upload' was called.*******");
}

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







你可能感兴趣的:(Node.Js)