前面的话

  本文将使用NodeJS实现较复杂应用的路由功能

结构

  项目结构如下

  代码如下

功能

【router.js】

// 加载所需模块
var http = require('http');
var url = require('url');
var fs = require('fs'); var host = '127.0.0.1';
var port = 8080; http.createServer(function(req,res){
var pathname = url.parse(req.url).pathname;
console.log('Request for ' + pathname + ' received.');
function showPaper(path,status){
var content = fs.readFileSync(path);
res.writeHead(status, { 'Content-Type': 'text/html;charset=utf-8' });
res.write(content);
res.end();
}
switch(pathname){
//'首页'
case '/':
case '/home':
showPaper('./view/home.html',200);
break;
//'about页'
case '/about':
showPaper('./view/about.html',200);
break;
//'404页'
default:
showPaper('./view/404.html',404);
break;
}
}).listen(port, host);

【404.html】

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
404
</body>
</html>

【about.html】

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
about
</body>
</html>

【home.html】

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
home
</body>
</html>

演示

最新文章

  1. Win7激活工具|OEM小马激活
  2. Java常见的几种内存溢出及解决方法
  3. Activity 生命周期及其栈管理方式
  4. Good vs Evil
  5. javascript对象几种创建方式
  6. openStack images
  7. the smallest positive number
  8. python处理.seq文件
  9. struts2上传下载
  10. HDOJ/HDU 2717 Catch That Cow 一维广度优先搜索 so easy..............
  11. 选择客栈noip2011
  12. Angular 4+ HttpClient
  13. Mybatis 批量插入、批量更新
  14. js 画布与图片的相互转化(canvas与img)
  15. 手工sql注入简单入门
  16. day5 页面布局
  17. lr关联抓有相同左右边界的动态值
  18. [Linux] 守护进程和守护线程
  19. MVC &amp; Entity Framework(2)- controller、Models单独DLL
  20. Key-Value Observing (键值监測)

热门文章

  1. MFC简单绘制安卓机器人
  2. c++课程设计之菜单选择
  3. DOM 和 BOM 的 对象 和方法
  4. dos命令窗口修改编码,CMD编码修改方法
  5. 简单的视频采集demo
  6. 【Android Developers Training】 37. 共享一个文件
  7. 安装wamp的方法及过程
  8. webpack教程(二)——webpack.config.js文件
  9. [转]安装PIL时注册表中找不到python2.7
  10. android源码、博文2