javascript - 覆盖expressjs中端点的响应状态
问题描述
我设法将根重定向'/'
到'/users'
但'/users'
端点状态覆盖了根端点状态。
app.get('/', (req, res) => {
res.redirect(301, '/users');
});
app.get('/users', (req, res) => {
res.status(200).json(data.filter(user => user.isActive === true));
});
如何检查'/users'
端点是否通过重定向访问然后res.status
适当设置?
解决方案
我不确定您为什么要发送根 api http 状态以响应 /users api,但是可以应用以下 hack 来识别是否从根 api 接收到请求。
app.get('/', (req, res) => {
res.redirect(301, '/users?redirect=true');
});
app.get('/users', (req, res) => {
const redirect = req.query.redirect;
if (redirect) {
res.status(301).json(data.filter(user => user.isActive === true));
} else {
res.status(200).json(data.filter(user => user.isActive === true));
}
});
推荐阅读
- node.js - Node.js 用cheerio 抓取没有返回值
- python - 如何修复我的代码,以便它允许我获取输入命令的用户 ID?
- r - 使用索引递增到矩阵
- lua - 我找不到这些错误发生在哪里,甚至找不到修复它们的意义
- python - 有没有办法在python中迭代地改变列表元素的位置?
- javascript - Express - 是否可以根据渲染视图中按钮的值影响对象?
- python-3.x - 在 MacOS 中最大化 Python PyQt5 打开窗口(全屏)
- npm - 我可以使用 Sudo 安装 NPM 包吗?
- ios - 在 iPad 上隐藏的 TabBar (Swift 4)
- c# - E*Trade API 在获取访问令牌时经常返回 HTTP 401 Unauthorized 但并非总是如此