Node.js自定义实现文件路由功能


Posted in Javascript onSeptember 22, 2017

一、创建路由处理定义

//获取http模块 
var http = require('http'); 
//文件 模块 
var fs = require('fs'); 
//404文件 
var error = "./view/404.html"; 
//实现文件 相应函数以及404错误相应函数  
var Response = function (res, filePath) { 
  //读取 文件,然后给客户端 相应 
  fs.readFile(filePath, function (err, data) { 
    if (err) { 
      if (filePath != error) //如果出错输出404页面 
        Response(res, error); 
    } else { 
      res.writeHead(200, { 'Content-Type': 'text/html' }); 
      res.end(data); 
    } 
  }); 
}

二、创建服务器 ,监听路由处理

//创建和启动服务器 
var server = http.createServer(function (req, res) { 
  console.info(req.url); 
  //判断 URL,提供 不同的路由 
  var url = req.url; 
  if (url == '/index' || url == '/') { 
    //主页 
    var index = require('../view/index'); 
    index.write(res); 
  } else { 
    //制定文件输出view下的文件内容 
    Response(res, './view' + url); 
  } 
}); 
//启动服务器 
server.listen('3000', function () { 
  var address = server.address(); 
  console.info(address); 
  console.info('服务器启动成功:http://localhost:%s', address.port); 
});

Node.js自定义实现文件路由功能Node.js自定义实现文件路由功能

三 、首页模块响应

/** 
 * 主页内容响应处理 
 */ 
exports.write=function(res){ 
  res.writeHead(200,{'Content-Type':'text/html'}); 
  res.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'); 
  res.write('<h1>主页内容2</h1>'); 
  res.end(); 
}

总结

以上所述是小编给大家介绍的Node.js自定义实现文件路由功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
javascript 按键事件(兼容各浏览器)
Dec 20 Javascript
表格奇偶行设置不同颜色的核心JS代码
Dec 24 Javascript
setInterval与clearInterval的使用示例代码
Jan 28 Javascript
使用javascript获取页面名称
Dec 23 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
ES6新特性七:数组的扩充详解
Apr 21 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 #Javascript
javascript计算渐变颜色的实例
Sep 22 #Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 #Javascript
原生JS实现日历组件的示例代码
Sep 22 #Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 #Javascript
Bootstrap Table 删除和批量删除
Sep 22 #Javascript
jQury Ajax使用Token验证身份实例代码
Sep 22 #Javascript
You might like
PHP的博客ping服务代码
2012/02/04 PHP
php无限遍历目录示例
2014/02/21 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP7新特性
2021/03/09 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
如何快速上手Vuex
2017/02/14 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
详解C++编程中一元运算符的重载
2016/01/19 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
wxPython实现画图板
2020/08/27 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
好军嫂事迹材料
2014/01/15 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
销售代理协议书
2014/09/30 职场文书
2015年助残日活动总结
2015/03/27 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python