当前位置: 首页>NodeJS>junshao90的专栏

junshao90的专栏

时间:2015-06-30 01:10 来源:网络整理 作者:KKWL 点击:
路由和request的处理 首先看一个最简单的例子: var express = require('express')var app = express();app.all('/hello/*', function(req,res){res.send(Welcome to Express);}); 以上表示凡是url能够匹配/hello/*,服务器都

路由和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(); }

版权声明:本文为博主原创文章,未经博主允许不得转载。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------