Node.js express路由

路由和request的处理

首先看一个最简单的例子:

var express = require('express')
var app = express();
app.all('/hello/*', function(req,res){
		res.send("Welcome to Express");
	});


以上表示凡是url能够匹配/hello/*,服务器都将向客户端发送字符串“Welcome to Express",在这里all表示get,post等任何一种请求方式,当然也可以指定为某种特定的请求方式。

下面是另一个例子:

app.get('/', function(req, res){
  res.render('index', {
    title: 'Express'
  });
});

上面的代码意思是,get请求根目录则调用views文件夹中的index模板,并且传入参数title为“Express”,这个title就可以在模板文件中直接使用。

在express中要处理post请求,需要使用app.post()。如下面的代码:

app.post('/add', function(req,res){
  res.render('add', {
    sum: req.body.a + req.body.b
  });
});

除了app.all、app.get、app.post这种形式外,还可以采用:app['get']('/path', function(req,res));这种形式。
其中这两种形式中的function均可以定义在外部,然后引进方法名即可。

welcome = function(req,res){
	res.send("Welcome to Express");
}
app.all('/hello/*', welcome);

其中方法welcome要在引用其前定义。

Request处理链

假如存在访问路径/departments/dep1, /departments/dep2等,程序要求需要对符合正则/departments/*的访问路径进行预处理,该如何去做呢?

可以对app对象同时app.all('/departments/*', fun)app.all('/departments/dep1',fun1)(设置顺序不可变),
给方法fun多传递一个参数next,则express框架会自动选择是否还有符合某一访问路径的方法。

fun = function(res, req, next){
   .....
   next();
}



















评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值