gpt4 book ai didi

node.js - React应用程序中的操作响应状态代码

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:30 25 4
gpt4 key购买 nike

我是react.js/express.js的新手,需要一些帮助。

我有两台服务器: http://192.168.10.10:5000 - 后端,由express.js处理; http://192.168.10.10:5001 - 前端客户端,使用react;

它完美地工作了。

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 显示:抱歉,未找到。但是 HTTP 状态代码没有改变 - 它是 200 OK 这是正常的,因为 React js 无法做到这一点。但expressjs可以。

在react 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'));

最佳答案

您可以为路线指定一个状态:

<Route component={Page404} status={404} />

关于node.js - React应用程序中的操作响应状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com