教程 > express.js 中文教程 > 阅读:567

express.js 路由——迹忆客-ag捕鱼王app官网

web 框架在不同的路由上提供诸如 html 页面、脚本、图像等资源。

以下函数用于在 express 应用程序中定义路由

app.method(path, handler)

此方法可以应用于任何一个 http 动词——get、set、put、delete。 还存在另一种方法,它独立于请求类型执行。

path 是请求运行的路径。

handler 是一个回调函数,当在相关路由上找到匹配的请求类型时执行。 例如,

var express = require('express');
var app = express();
app.get('/hello', function(req, res){
   res.send("hello 迹忆客!");
});
app.listen(3000);

如果我们运行我们的应用程序并访问 http://localhost:3000/hello ,服务器在路由“/hello”处接收到一个 get 请求,我们的 express 应用程序执行附加到该路由的回调函数并发送“hello 迹忆客!” 作为回应。

express 路由

我们也可以在同一个路由上有多种不同的方法。 例如,

var express = require('express');
var app = express();
app.get('/hello', function(req, res){
   res.send("hello 迹忆客!");
});
app.post('/hello', function(req, res){
   res.send("you just called the post method at '/hello'!\n");
});
app.listen(3000);

要测试此请求,请打开终端并使用 curl 执行以下请求

$ curl -x post "http://localhost:3000/hello"

express 路由 post请求

express 提供了一个特殊的方法 all 来使用相同的函数在特定路由上处理所有类型的 http 方法。

app.all('/test', function(req, res){
   res.send("http method doesn't have any effect on this route!");
});

该方法一般用于定义中间件,我们将在中间件章节中讨论。

路由

像上面这样定义路由维护起来非常繁琐。 要将路由与我们的主 index.js 文件分开,我们将使用 express.router。 创建一个名为 things.js 的新文件并在其中键入以下内容。

things.js

var express = require('express');
var router = express.router();
router.get('/', function(req, res){
   res.send('get route on things.');
});
router.post('/', function(req, res){
   res.send('post route on things.');
});
// 导出此路由器以在我们的 index.js 中使用
module.exports = router;

现在要在我们的 index.js 中使用这个路由器,在 app.listen 函数调用之前输入以下内容。

index.js

var express = require('express');
var app = express();
var things = require('./things.js');
// index.js 和 things.js 都应该在同一个目录中
app.use('/things', things);
app.listen(3000);

路由 '/things' 上的 app.use 函数调用将 things 路由器与此路由相连。 现在,无论我们的应用程序在“/things”收到什么请求,都将由我们的 things.js 路由器处理。 things.js 中的 '/' 路由实际上是 '/things' 的子路由。 访问 http://localhost:3000/things/ ,我们将看到以下输出。

express 路由导出

路由器非常有助于分离关注点并将我们代码的相关部分保持在一起。 它们有助于构建可维护的代码。 我们应该在单个文件中定义与实体相关的路由,并使用上述方法将其包含在 index.js 文件中。

查看笔记

扫码一下
查看教程更方便
网站地图