Express学习

Express 定义了如下和 HTTP 请求对应的路由方法: getpostputheaddeleteoptionstracecopylockmkcolmovepurgepropfindproppatchunlockreportmkactivitycheckout,

 mergem-searchnotifysubscribeunsubscribepatchsearch, 和 connect(连接)

来自 “/secret” 的请求,不管使用 GET、POST、PUT、DELETE 或其他任何 http 模块支持的 HTTP 请求,句柄都会得到执行。

app.all('/secret', function (req, res, next) {

路由路径

路由路径和请求方法一起定义了请求的端点,它可以是字符串字符串模式或者正则表达式

//字符 ?、+、* 和 () 是正则表达式的子集,- 和 . 在基于字符串的路径中按照字面值解释。

路由句柄有多种形式,可以是一个函数、一个函数数组,或者是两者混合

路由句柄

可以为请求处理提供多个回调函数,其行为类似 中间件。唯一的区别是这些回调函数有可能调用 next('route') 方法而略过其他路由回调函数。可以利用该机制为路由定义前提条件,如果在现有路径上继续执行没有意义,则可将控制权交给剩下的路径。

使用多个回调函数路由(指定为next对象

 

多个回调函数:
eg:
        app.get('/example/b', function (req, res, next) {
        console.log('response will be sent by the next function ...');
        next();
        }, function (req, res) {
        res.send('Hello from B!');
        });    

  

 响应方法

下表中响应对象(res)的方法向客户端返回响应,终结请求响应的循环。如果在路由句柄中一个方法也不调用,来自客户端的请求会一直挂起。

方法	                     描述
res.download()	         提示下载文件。
res.end()	             终结响应处理流程。
res.json()	             发送一个 JSON 格式的响应。
res.jsonp()	          发送一个支持 JSONP 的 JSON 格式的响应。
res.redirect()	         重定向请求。
res.render()	         渲染视图模板。
res.send()	            发送各种类型的响应。
res.sendFile	         以八位字节流的形式发送文件。
res.sendStatus()          设置响应状态代码,并将其以字符串形式作为响应体的一部分发送。                                

app.route()

可使用 app.route() 创建路由路径的链式路由句柄由于路径在一个地方指定,这样做有助于创建模块化的路由,而且减少了代码冗余和拼写错误。

  使用 app.route() 定义了链式路由句柄。
app.route('/book') .get(function(req, res) { res.send('Get a random book'); }) .post(function(req, res) { res.send('Add a book'); }) .put(function(req, res) { res.send('Update the book'); });

猜你喜欢

转载自www.cnblogs.com/chen1997/p/9328430.html
今日推荐