📅  最后修改于: 2023-12-03 15:14:57.498000             🧑  作者: Mango
在使用 Express.js 开发 Web 应用时,经常需要重定向用户到不同的 URL 地址,此时就需要用到 res.redirect()
函数。本文将深入介绍 res.redirect()
函数的用法和相关知识点。
重定向是指在服务器端告诉浏览器,当前访问的网页并不是请求的网页,而是另一个网页。例如,用户访问 /page1
页面时,服务器返回一个重定向指令,告诉浏览器该访问 /page2
页面,此时浏览器会立即跳转到 /page2
页面。
res.redirect()
函数res.redirect()
函数的作用是返回一个重定向指令,告诉浏览器跳转到另一个页面。
语法:
res.redirect([status,] path)
参数说明:
status
(可选):HTTP 状态码,默认为 302。path
:重定向的页面路径。示例代码:
app.get('/', function(req, res) {
res.redirect('/home');
});
app.get('/home', function(req, res) {
res.send('Welcome to home page!');
});
当用户访问根路由 /
时,服务器会返回一个重定向指令,告诉浏览器跳转到 /home
页面。此时,浏览器会跳转到 /home
页面,显示 Welcome to home page!
。
res.redirect()
函数默认的 HTTP 状态码是 302,表示临时重定向。这种情况下,浏览器会将原本请求的 URL 地址保留下来,同时跳转到新的地址。
如果需要指定 HTTP 状态码,可以在调用 res.redirect()
函数时传入一个数字参数。常用的状态码有以下几种:
示例代码:
app.get('/old_url', function(req, res){
res.redirect(301, '/new_url');
});
在使用 res.redirect()
函数时,可以传入完整的 URL 地址,也可以传入相对路径地址。
相对路径地址是指相对于当前路径的地址,例如 /foo
,../bar
等。
另外,使用 res.redirect()
函数生成 URL 地址时,还可以使用 req.protocol
、req.get('host')
等对象获取当前请求的协议和主机名信息。
示例代码:
app.get('/old_url', function(req, res){
const newUrl = req.protocol + '://' + req.get('host') + '/new_url';
res.redirect(newUrl);
});
res.redirect()
函数是 Express.js 中重要的重定向函数之一,掌握此函数的用法和知识点,对于开发 Web 应用十分有用。希望本文能够帮助读者深入了解 res.redirect()
函数,同时也希望读者能够在实际项目中灵活运用此函数。