ExpressJS路由 ExpressJS Hello World ExpressJS HTTP方法 Web框架在不同的路由上提供诸如HTML页面,脚本,图像等的资源。 以下函数用于在Express应用程序中定义路由 app.method(path,handler) 此METHOD可以应用于任何一个HTTP动词 - get,set,put,delete。还存在另一种方法,该方法独立于请求类型执行。 path是请求运行的路径。 handler是一个回调函数,在相关路径上找到匹配的请求类型时执行。例如, 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" 一种特殊的方法, 所有的,由快递提供在使用相同功能的特殊途径来处理所有类型的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); 该 app.use 的路由功能调用 “/things” 重视的 things 路由器与这条路线。现在无论我们的应用程序在'/things'处获得什么请求,都将由我们的things.js路由器处理。things.js中的 '/' 路由实际上是 '/things' 的子路由。访问 localhost:3000/things/,您将看到以下输出。 路由器非常有助于分离问题并将代码的相关部分保持在一起。它们有助于构建可维护的代码。您应该在单个文件中定义与实体相关的路由,并使用 index.js 文件中的上述方法将其包含在内。 ExpressJS Hello World ExpressJS HTTP方法