📜  ExpressJS-路由

📅  最后修改于: 2020-10-25 11:05:39             🧑  作者: Mango


Web框架在不同的路径上提供HTML页面,脚本,图像等资源。

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

app.method(路径,处理程序)

该方法可以应用于任何HTTP动词–获取,设置,放置,删除。还存在另一种方法,该方法独立于请求类型执行。

路径是运行请求的路由。

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

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

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

app.listen(3000);

如果运行我们的应用程序并转到localhost:3000 / hello ,服务器将在路由“ / hello”处收到一个get请求,我们的Express应用程序将执行此路由附带的回调函数并发送“ Hello World!”。作为回应。

你好

我们也可以在同一条路线上使用多种不同的方法。例如,

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

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

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提供了一种特殊的方法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的新文件,并在其中键入以下内容。

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.');
});

//export this router to use in our index.js
module.exports = router;

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

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

var things = require('./things.js');

//both index.js and things.js should be in same directory
app.use('/things', things);

app.listen(3000);

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

路由器的东西

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