动漫引擎

导航

ExpressJs server中Router的设置

expressjs的路由设置方法

1. Route Path的3种写法:

实例:
     app.get('/opus/.*.html', handler); // 模式字串,用单引号'', 不是RegExp
     app.get(/\/opus\/.*\.html/, handler); // RegExp, 用斜杠/   /
只有后者匹配: "/opus/XXXX.html", 前者不

* RegExp正则字串写法 
* 模式字串(String Pattern): 只允许少量的特殊标记 ? * +和( ), (备注: 不包括.和-), 含义与RegExp中一样,
    b? 匹配{0,1}个b 
    b+ 匹配{1,n}个b
    b* 匹配{0,n}个b
* 普通字串: 没有任何特殊字符
这个3种写法适用于各种http操作(get,put和post), Route Path和Request方法一起定义一个endpoint, 完成一个请求的操作。

2. app.get(),代价小,优先用。 app.use()速度慢
app.get('/', handler): 增加一个路径'/'及其handler到routing 表,只有当http GET '/'的时候, 才调用此handler,永远不会被非"/"的 routes调用。
app.use('/', middleware): 增加一个middleware到stack, .所有以'/'开头的路径(不论http操作是GET/PUT/POST), 都会执行此middleware。

* stack中的每一个middleware都是一个函数,拥有形参(req, res, next)。 stack中的每一个middleware都会被前者通过next()显式调用。
* express.static(__dirname + '/pub') 返回一个middleware专门检查req的path, 并且以streams返回res的content.

 ///////////////////////////////////

一、基本方法:
app.METHOD(PATH, HANDLER)
把路径path和操作方法method(可以是http的get/put/delete等),映射到一个处理函数handler

例如:
app.get('/user', function (req, res) {
res.send('Got a PUT request at /user');
});

二、使用express.Router的方法

定义一组路径. 例如:
/birds
/birds/about

1) 先在Router文件中,只定义相对路径/和/about
var express = require('express');
var router = express.Router();

// define the home page route
router.get('/', function(req, res) {
res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
res.send('About birds');
});

module.exports = router;

2) 在主文件中, 定义base路径/birds,
var birds = require('./birds');
app.use('/birds', birds);

posted on 2016-02-29 04:49  动漫引擎  阅读(412)  评论(0编辑  收藏  举报