【问题标题】:nodejs and reactjs - can not redirectnodejs 和 reactjs - 无法重定向
【发布时间】:2022-01-23 02:14:28
【问题描述】:

我使用 ReactJS 作为前端,NodeJS 作为后端。如果没有带有此类参数的 url,我想重定向但我的代码不起作用。我错过了哪里?

<Router>
  <Routes>
    <Route path="/" element={<HomeScreen />} exact />
    <Route path="/create" element={<CreateScreen />} />
    <Route path="/update/:id" element={<UpdateScreen />} />
    <Route path="*" element={<Navigate to="/" />} />
  </Routes>
</Router>;

后端:

router.get('/update/:id',async (req,res)=>{
    try {
        const {id} = req.params
        if(!mongoose.Types.ObjectId.isValid(id)){
            res.status(404).json({message:'not working'}).redirect('/') 
        }else{
            const memory = await Memory.findById(id)
            if(!memory) return
            res.status(200).json(memory)
        }
    } catch (error) {
        res.status(404).json({message:error.message})
    }
})

【问题讨论】:

标签: node.js reactjs


【解决方案1】:

您的应用配置为在前端执行 URL 导航,而不是在后端通过 SSR。当前端请求express时,express发送给前端的响应对象不应该包含redirect属性。尝试专注于处理前端的重定向。

例如

let navigate = useNavigate();
if (res.statusCode === 404) navigate('/', {state: null, replace: true})

这是 react-router v6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2020-08-17
    • 2020-05-25
    • 2021-06-08
    • 1970-01-01
    相关资源
    最近更新 更多