express中路劲简单匹配

责编:menVScode 2017-09-16 22:25 阅读(476)

        其中,app.get( '/',fn(req,res){} )中的函数参数默认自带next参数,若没有匹配当前的路劲,那么就会自行往下运行其他代码。

var express = require('express');
var app = express();

var server = app.listen(3000,function() {
	console.log('waiting...');//运行node server.js,会在终端输出waiting
});

app.get('/',function(req,res){
	res.send('index');
});

app.get('/about',function(req,res){
	res.send('about');
});

app.use(function(req,res){
	//res.status(404);
	//res.send('404');
	res.status(404).send('404');
});

        ?:匹配前一个字母,为可选字母,下面例子也就是说该路由可以匹配 '/abcd' 和 '/acd' 两个路劲。

app.get('/ab?cd',function(req,res){
	res.send('?:匹配前一个字母,为可选字母');
});

        +:匹配前一个字母,为1~n重复出现

app.get('/ab+cd',function(req,res){
	res.send('+:匹配前一个字母,为1~n重复出现');
});

        *:匹配当前位置可以是任意字母

app.get('/ab*cd',function(req,res){
	res.send('*:匹配当前位置可以是任意字母');
});

        ():配个?使用,括号()内的字母可以出现,下面例子可以匹配 '/abcde' 和 '/abe' 两个路劲。

app.get('/ab(cd)?e',function(req,res){
	res.send('():配个?使用,括号()内的字母可以出现');
});

        上面这几种路劲匹配方式是express中的方式,不是正则的方法;现在简单举个正则匹配的例子:

app.get(/ab/,function(req,res){
	res.send('正则方式');
});

        app.get()等方法可以传入多个中间件,但要注意的是只能有一个res.send()方法,想要执行下一个中间件,前一个函数必须加入next参数,并执行next()方法。

app.get('/',function(req,res,next){
	console.log('menvscode');
	next();
},function(req,res){
	res.send('menvscode.com');
});

        也可以把中间件函数以变量的形式传入app.get()中。

var a = function(req,res,next){
	console.log('menvscode');
	next();
}

var b = function(req,res,next){
	console.log('menvscode.com');
	next();
}
var c = function(req,res){
	console.log('MVC前端网');
	res.send('hello menvscode');
}
app.get('/',[a,b,c]);//以数组的方式传入
标签: 路由 express
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码