在express中,路由是指的是客户端的请求和服务端处理函数之间的映射关系
express中的路由分为三个部分,分别是请求的类型,请求的URL地址,处理函数
app.METHOD(PATH,HANDLER)
例子
app.get('/',function(req,res){
res.send("hello world!")
})
app.post('/',function(req,res){
res.send('Got a POST request')
})
当每一个请求达到服务器之后,需要先经过路由的匹配,只有匹配成功之后,才会调用对应的处理函数
在匹配的时候,会按照路由的顺序进行匹配,如果请求类型和请求的URL同时匹配成功,则express会将这次请求交给对应的function函数进行处理
我们已经了解了 HTTP 请求的基本应用,而路由决定了由谁(指定脚本)去响应客户端请求。
在HTTP请求中,我们可以通过路由提取出请求的URL以及GET/POST参数。
接下来我们扩展 Hello World,添加一些功能来处理更多类型的 HTTP 请求。
创建 express_demo2.js 文件,代码如下所示:
var express = require('express');
var app = express();
// 主页输出 "Hello World"
app.get('/', function (req, res) {
console.log("主页 GET 请求");
res.send('Hello GET');
})
// POST 请求
app.post('/', function (req, res) {
console.log("主页 POST 请求");
res.send('Hello POST');
})
// /del_user 页面响应
app.get('/del_user', function (req, res) {
console.log("/del_user 响应 DELETE 请求");
res.send('删除页面');
})
// /list_user 页面 GET 请求
app.get('/list_user', function (req, res) {
console.log("/list_user GET 请求");
res.send('用户列表页面');
})
// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求
app.get('/ab*cd', function(req, res) {
console.log("/ab*cd GET 请求");
res.send('正则匹配');
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("应用实例,访问地址为 http://%s:%s", host, port)
})