学习使用ExpressJS 4.0中的新Router的用法

2020-06-17 06:03:15易采站长站整理

概述

ExpressJS 4.0中提出了新的路由Router。Router好比是一个“迷你版”的express应用,它没有引入views或者settings,但是提供了路由应有的API,.use,.get,.param和route。

示例应用

让我们创建一个express应用,仅仅有少量routes和功能:

基础路由:Home,About
一个把request请求打印到console的路由中间件
一个带参数的路由
一个校验特殊参数的路由中间件
一个用于登录的路由,响应对与路径/login的GET和POST请求
校验功能:校验传递给某一个路由的参数

应用文件架构

我们只需要两个文件:


- package.json // 构建node应用所需要的插件
- server.js // 构建示例应用的启动文件

我们会把路由代码写如server.js文件。将来为了让示例应用模块化,我们会把这些路由代码分别写入不同的文件,甚至可以为网站的不同组成部分单独定义不同的路由文件。

创建Node应用

创建node应用,我们需要编写package.json文件去定义node应用依赖的插件。


{
"name": "express-router-experiments",
"main": "server.js",
"dependencies": {
"express": "~4.0.0"
}
}

下面继续安装依赖:


$ npm install

现在我们安装了Express,让我们继续编写server.js去处理路由。

创建server

我们在package.json中指定了main属性值为server.js,因此Express会使用server.js作为应用的入口文件。


// server.js

// 基础设置
// ==============================================

var express = require('express');
var app = express();
var port = process.env.PORT || 8080;

// 路由
// ==============================================

// 示例路由
app.get('/sample', function(req, res) {
res.send('this is a sample!');
});

// 我们会在这里编写自己的路由

// 启动server
// ==============================================
app.listen(port);
console.log('Magic happens on port ' + port);

现在我们可以使用命令node server.js启动server。我们使用app.get创建了一个Express 3时代的路由,如果此时打开浏览器访问http://localhost:8080/sample,我们就能看到这样下面的文字:this is a sample!。

基本用法 express.Router()

下面我们一起编写Node应用前端路由的例子,包括Home页面和About页面。


// server.js

...

// 获取router实例
var router = express.Router();

// home页面路由(http://localhost:8080)