类似express的路由封装方式

1.原理

主要过程涉及三个元素的定义,如下:

//用于承载一系列方法的对象
var funObj = {};
//用于根据条件执行funObj中的方法
var app = function(){};
//用于向funObj添加方法
app.get = function(){};

2.具体实现

a. 路由框架的封装(route.js)

//==========================
//  类似express的路由框架
//==========================
var url = require(‘url‘);
//用于承载一系列方法的对象
var funObj = {};
//用于根据条件执行funObj中的方法
var app = function(req,res){
    var pathName = url.parse(req.url).pathname;
    if(funObj[pathName]){
        funObj[pathName](req,res);
    }else{
        res.writeHead(200,{‘content-type‘:‘text/html;charset=utf-8‘});
        res.end(‘无有效路由‘);
    }
};
//用于向funObj添加方法
app.get = function(string, callback){
    funObj[string] = callback;
};

module.exports = app;

b. 框架的调用和执行(index.js)

var http = require(‘http‘);
var app = require(‘./route‘);

app.get(‘/login‘,function(req,res){
    res.end(‘login‘);
})
app.get(‘/home‘,function(req,res){
    res.end(‘home‘);
})
http.createServer(app).listen(8090);

原文地址:https://www.cnblogs.com/zhcBlog/p/10256798.html

时间: 2024-10-09 08:01:07

类似express的路由封装方式的相关文章

Nodejs 路由模块封装、封装仿照 express 的路由(9)

1. 模块化的方式封装 `model/model.js` // 导入模块 var ejs=require('ejs'); var fs=require('fs'); var app ={ // login login:function (req, res) { console.log('login'); ejs.renderFile('views/form.ejs',{},function (err,data) { res.end(data); }) }, // dologin dologin:

通用路由封装简介和基本配置方法

众所周知,IPSec可用于封装各种诸如路由器到路由器,防火墙到路由器,PC到路由器和PC到服务器之间的数据包,以保证数据包在这些设备之间的传输安全.它包含2种数据封装方式,他们是通道模式和传输模式.传输模式仅封装数据包的有效负载,而通道模式还会额外封装数据包的报头. 在本文中,让我们一起关注IPSec通道模式中的一个比较常用的封装方法:通用路由封装(Generic Routing Encapsulation,以下简称GRE). GRE会使用一种GRE专有的封装报头来加密数据包的报头和有效负载.网

对象(类)的封装方式(面向对象的js基本知识)

上一个月一直忙于项目,没写过笔记,今天稍微空下来了一点 前几天在写项目的时候关于怎么去封装每一个组件的时候思考到几种方式,这里总结一下: 1.构造函数方式(类似java写类的方式):把所有的属性和方法全部挂在构造函数内部的this上: 1 function Textarea(opts) { 2 this.defaults = { 3 //...这是一些默认属性 4 }; 5 this.options = $.extend(true, {}, this.defaults, opts); 6 thi

通用路由封装(GRE)

通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPv4网络中传输. 中文名:通用路由封装 外文名:Generic Routing Encapsulation 作用:网络层协议封装一个其它网络协议 类    型:网络协议 隶    属:通信协议,路由协议 目录 1 基本信息 2 报文格式 3 封装过程 4 解封装过程 基本信息 通用路由封装 (GRE)定义了在任意一种网络层协议

CCNA实验三十六 GRE(通用路由封装)  

CCNA实验三十六 GRE(通用路由封装) 环境:Windows XP .Packet Tracert5.3 目的:了解GRE的使用,掌握如何配置GRE. 说明: GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP 和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输.GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议. Tunnel

Asp.Net Core下的两种路由配置方式

与Asp.Net Mvc创建区域的时候会自动为你创建区域路由方式不同的是,Asp.Net Core下需要自己手动做一些配置,但更灵活了. 我们先创建一个区域,如下图 然后我们启动访问/Manage/Home/Index 发现是404没有找到该页面,因为我们还没有为其配置路由,下面使用两种配置区域路由的方式 1.通过配置MapRoute app.UseMvc(routes => { routes.MapRoute( name: "default", template: "

Nodejs封装一个类似express框架的路由

var http=require('http'); var ejs=require('ejs'); var app=require('./model/express-route.js'); console.log(app); http.createServer(app).listen(3000); app.get('/',function(req,res){ var msg='这是数据库的数据' ejs.renderFile('views/index.ejs',{msg:msg},functio

express框架路由配置及congtroller自动加载

express框架在node官方推荐的一个框架,关于如何入门的文章,已经很多了,我就不在累赘了,本文的核心是如何修改文件使得更接近一个MVC的框架 express原生是通过require的方式实现了模块的加载,而且是在程序启动时一次性全部加载(因此我的按需加载的方案搁浅了),如果在配置路由的时候都加载一次,然后全部写在app.js文件中,我的天呐,对于一个大型项目来说极难维护,因此必须将其分割.下面我们就来干这么一件事. 上图是我的文件目录: controller  文件夹是控制器 model

视频编码与封装方式详解

http://blog.csdn.net/attilax/article/details/5807047 1.    编码方式和封装格式    1 2.    视频编码标准两大系统    2 MPEG-1. 2 MPEG-2. 3 MPEG-3. 3 MPEG-4. 3 ITU-T. 4 WMV.. 4 3.    常用视频编码方式有Xvid( 4 4.    常见存储封装格式    6 5.    几种常见的转换格式设置    7 6.    无损视频编码    9 1.   编码方式和封装格