index.js:
// 入口 var server = require("./server.js"); var handler = require("./handler"); var route = require("./router.js") var handle = {}; handle["/"] = handler.home handle["/home"] = handler.home handle["/user"] = handler.user handle["/list"] = handler.list server.startServer(route,handle);
router.js:
var fs = require("fs"); function route(handle,pathname,response,params){ if(typeof handle[pathname] === 'function'){ handle[pathname](response,params) }else{ response.writeHead(404,{"Content-Type":'text/html'}); fs.createReadStream(__dirname +"/404.html",'utf8').pipe(response) } } module.exports = route;
handle.js:
var fs = require("fs"); var data = require("./data.js") // / /home function home(response){ response.writeHead(200,{"Content-Type":'text/html'}); fs.createReadStream(__dirname + "/home.html","utf8").pipe(response) } // /user function user(response){ response.writeHead(200,{"Content-Type":'application/json'}); response.end(JSON.stringify(data)) } // list function list(response,params){ response.writeHead(200,{"Content-Type":'application/json'}); console.log(params); response.end(JSON.stringify(params)) } module.exports = { home, user, list }
var http = require("http"); var url = require("url"); var querystring = require("querystring"); function startServer(route, handle) { var server = http.createServer(function(request, response) { // 拿到路径 例如:localhost:3000/list var pathname = url.parse(request.url).pathname; var params = url.parse(request.url, true).query; route(handle, pathname, response, params); }) server.listen(3000, "127.0.0.1"); console.log("服务器运行在3000端口上"); } module.exports = { startServer }