node.js - react应用中的操作响应状态码
问题描述
我是 react.js/express.js 的新手,需要一些帮助。
我有两台服务器: http: //192.168.10.10 :5000 - 后端,由 express.js 处理; http://192.168.10.10:5001 - 前端客户端,反应;
它完美地工作。
在react
我制作SPA
应用程序时,我正在尝试制作简单的pageNotFound
组件。
施工简单:
<Switch>
<Route exact path="/test1" component={Component1}/>
<Route exact path="/test2" component {Component2}/>
<Route exact path="/test3" component={Component3}/>
<Route component={Page404}/>
</Switch>
它有效,当我的网址不匹配时:/test999 显示:Sorry, not found
。但是 HTTP 状态码没有改变——这200 OK
很正常,因为 react js 不能这样做。但是 expressjs 可以。
在反应package.json文件中:
"proxy": "http://192.168.10.10:5000"
- 这意味着它将代理请求到后端。它也有效,当我写了类似的东西时:
axios.get('/api/getsomething')...
404
当他找不到与我的请求匹配的路线时,后端也会处理。
所以我的问题是:为什么http://192.168.10.10:5001/test999返回状态200
?按照我的逻辑,请求必须代理到后端并返回404
。也许我做错了什么?
我该如何解决?
非常感谢。
服务器.js
const express = require('express');
const app = express();
const port = 5000;
app.get('/api/getsomething',(req,res) => {
const something= [
{id:1, message:'Hello'},
];
res.json(something);
});
app.use(function(req, res, next) {
res.status(404).send('Sorry, not found');
});
app.listen(port, () => console.log('server started'));
解决方案
您可以给路线 a status
:
<Route component={Page404} status={404} />
推荐阅读
- paw-app - OAuth2 没有获取访问令牌
- python - Python pandas - 为另一列中的每个不同值显示列中记录数最多的值
- jsp - 为什么我在 IntelliJ IDEA Ultimate 2020.2 的 JSP&servlet 中发现 404 错误?
- javascript - Javascript多次拖放文件 - 将新文件添加到以前的文件而不是替换
- python - 如何在定义函数时指定使用 pandas .replace() 而不是 str.replace()?
- reactjs - 在 typecipt 中使用 Stateful React 类
- python - 读取用户 ID 以回复消息时出现问题。带有 Aiogram 的 Telegram 机器人
- java - 从 String 和 Map 构建 JSON 字符串
GSon 的领域? - ios - 您如何让位置捕获器在覆盖转场之前运行?
- python - 无法使用功能停止简单的音频音乐