在实际的开发场景中,我们需要根据不同的地址返回不同的数据,也就是我们日常所说的路由效果
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);
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) {
response.writeHead(200, { "Content-Type": 'application/json' });
var lists = [{
name: "iwen"
},
{
name: "ime"
}
]
response.end(JSON.stringify(lists))
}
module.exports = {
home,
user,
list
}
server.js:
var http = require("http");
function startServer(route, handle) {
//创建服务器
var server = http.createServer(function(request, response) {
//
route(handle, request.url, response)
})
//服务器监听
server.listen(3000, "127.0.0.1");
console.log("服务器运行在3000端口上");
}
//导出
module.exports = {
startServer
}
router.js:
var fs = require("fs");
function route(handle, pathname, response) {
if (typeof handle[pathname] === 'function') {
handle[pathname](response);
} else {
response.writeHead(404, { "Content-Type": 'text/html' });
fs.createReadStream(__dirname + "/404.html", 'utf8').pipe(response);
}
}
module.exports = route;
data.js:
var data = {
name:"iwen",
age:20
}
module.exports = data;