Nginx NodeJS Express - Router 1

 

http://www.codes51.com/article/detail_2787757_1.html

 

本篇文章主要介绍了"Nginx+Nodejs nodejs开发 express路由与中间件",主要涉及到Nginx+Nodejs方面的内容,

对于Javascript教程感兴趣的同学可以参考一下: 路由通常HTTP URL的格式是这样的:http://host[:port][path]

http表示协议。host表示主机。port为端口,可选字段,不提供时默...

 

路由

通常HTTP URL的格式是这样的:

      http://host[:port][path]

 

http表示协议。

host表示主机。

port为端口,可选字段,不提供时默认为80。

path指定请求资源的URI(Uniform Resource Identifier,统一资源定位符),如果URL中没有给出path,

一般会默认成“/”(通常由浏览器或其它HTTP客户端完成补充上)。

所谓路由,就是如何处理HTTP请求中的路径部分。比如“http://xxx.com/users/profile”这个URL,

路由将决定怎么处理/users/profile这个路径。

来回顾我们在Node.js开发入门——Express安装与使用中提供的express版本的HelloWorld代码:

 

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

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(8000, function () {
  console.log('Hello World is listening at port 8000');
});

 

上面代码里的app.get()调用,实际上就为我们的网站添加了一条路由,指定“/”这个路径由get的第二个参数所代表的函数来处理。

express对象可以针对常见的HTTP方法指定路由,使用下面的方法:

 

app.METHOD(path, callback [, callback ...])

 

METHOD可以是GET、POST等HTTP方法的小写,例如app.get,app.post。path部分呢,既可以是字符串字面量,

也可以是正则表达式。最简单的例子,把前面代码里的app.get()调用的一个参数’/’修改为’*’,含义就不一样。改动之前,

只有访问“http://localhost:8000”或“http://localhost:8000/”这种形式的访问才会返回“Hello World!”,而改之后呢,

像“http://localhost:8000/xxx/yyyy.zz”这种访问也会返回“Hello World!”。

使用express构建Web服务器时,很重要的一部分工作就是决定怎么响应针对某个路径的请求,也即路由处理。

最直接的路由配置方法,就是调用app.get()、app.post()一条一条的配置,不过对于需要处理大量路由的网站来讲,

这会搞出人命来的。所以呢,我们实际开发中需要结合路由参数(query string、正则表达式、自定义的参数、

post参数)来减小工作量提高可维护性。更详细的信息,参考http://expressjs.com/guide/routing.html。

中间件

Express里有个中间件(middleware)的概念。所谓中间件,就是在收到请求后和发送响应之前这个阶段执行的一些函数。

要在一条路由的处理链上插入中间件,可以使用express对象的use方法。该方法原型如下:

app.use([path,] function [, function...])

当app.use没有提供path参数时,路径默认为“/”。当你为某个路径安装了中间件,则当以该路径为基础的路径被访问时,

都会应用该中间件。比如你为“/abcd”设置了中间件,那么“/abcd/xxx”被访问时也会应用该中间件。

 

posted on 2017-09-14 15:13  fanbird2008  阅读(50)  评论(0)    收藏  举报

导航