Web框架在不同的路径上提供HTML page,script, images 等资源,以下函数用于在Express应用程序中定义routes路由-
app.method
该方法可以应用于任何HTTP 请求方法–get,set,put,delete,处理程序是一个回调函数,当在相关routes上找到匹配的请求类型时执行。如,
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!"); });
此方法通常用于定义中间件,将在中间件一章中进行讨论。
Routers 路由
定义上述routes非常繁琐。为了与routes与主 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 中使用此routes,请在 app.listen 函数调用之前键入以下内容。
var express=require('Express'); var app=express(); var things=require('./things.js'); //index.js 和 things.js 都应该在同一个目录中 app.use('/things', things); app.listen(3000);
访问localhost:3000/things /,您将看到以下输出。
route 在分离问题和将代码的相关部分保持在一起方面非常有帮助,它们有助于构建可维护的代码。
参考链接
https://www.learnfk.com/expressjs/expressjs-routing.html
标签:res,app,express,无涯,js,ExpressJS,Routing,things,var From: https://blog.51cto.com/u_14033984/9480117