express中间件和路由

Express是基于Nodejs的Web应用程序框架。我的理解,在做express开发关键处理好两件事中间件路由

最近的项目开发希望使用Nodejs为前端开发提供一个简单的本地服务器环境,于是用Express简单搭建了一套,以下是自己的一些理解:

中间件

中间件按类型可以分为:

  • 应用层中间件 eg. app.use()
  • 路由器中间件 eg. router.use()
  • 内置中间件 eg. express.static()

中间件的安装有两种情况,

  1. 全局
  2. 指定路径

以应用层中间件为例app.use(callback)为全局中间件,app.use(path, callback)为指定在path上安装中间件。全局中间件在每次收到请求时都会执行该函数,指定路径中间件只有在满足路径的情况下才执行。

中间件的装入顺序很重要,会按装载顺序依次执行,各中间件之间通过next()方法链接,如果中间阻断,后面的中间件也不会执行。

路由中间件和应用中间件功能一样,不同的它是绑定到express.Router()对象,使用时也需要像其他中间件一样通过app.use()进行安装

路由

路由的功能就是对指定请求进行正确的相应。用法app.get(path, callback)或者app.route(path, callback)。get方法是表明针对get请求,相应其他请求方法都有对应的方法。Express中有router对象,所以更推荐使用router进行模块开发,用法和上述的一样。

路由的配置从形式上和中间件相似,用法基本一样,不再描述。

不论中间件还是路由,回调函数均可以是一个函数栈,并匹配成功之后顺序执行。不同的是在路由中间件中可以通过next('router')跳出函数栈,到下一个中间件执行。

了解了这两部分内容,就可以用express搭建web服务器了,更多细节的内容请移步express官网