浏览器错误:无法加载资源:服务器响应状态为 500 ,终端错误:代理错误:无法代理请求

问题描述

我正在尝试根据指南构建 MERN 堆栈应用程序。这个应用程序的重点是保存一些信息的链接并制作它的快捷方式,按下快捷方式链接后,它必须重定向到原始链接。我的问题是,按下快捷链接后,我被重定向到这个看起来很奇怪的链接“http://localhost:3000/detail/http//:localhost:5000/t/gQ3pKjsPQ”,并收到错误“失败加载资源:服务器响应状态为 500(内部服务器错误)”。这就是实现重定向的地方

const {Router} = require('express')
const Link = require('../models/Link')
const router = Router()

router.get('/:code',async (req,res) => {
    try {
        
        const link = await Link.findOne({code: req.params.code})

        if (link) {
            link.clicks++
            await link.save()
            return res.redirect(from.link)
        }

        res.status(404).json('Can not find the link')
        
      } catch (e) {
          res.status(500).json({message: 'Something went wrong'})
      }
})

module.exports = router

有时(就像不总是这样,不明白为什么)我在终端中收到此错误“[1] 代理错误:无法将请求 /api/link/http 从 localhost:3000 代理到 http: //本地主机:5000/。”

import React,{ useCallback,useEffect,useState,useContext } from 'react'
import { useParams } from 'react-router-dom'
import { useHttp } from '../hooks/http.hook'
import { AuthContext } from '../context/AuthContext'
import { Loader } from '../components/Loader'
import { LinkCard } from '../components/LinkCard'

export const DetailPage = () => {
    const {token} = useContext(AuthContext)
    const {request,loading} = useHttp()
    const [link,setLink] = useState(null)
    const linkId = useParams().id

    const getLink = useCallback( async () => {
        try {
        const fetched = await request(`/api/link/${linkId}`,'GET',null,{
              Authorization: `Bearer ${token}`
          })
          setLink(fetched)   
        } catch (e) {}
    },[token,linkId,request])

    useEffect(() => {
        getLink()
    },[getLink])

    if(loading) {
        return <Loader />
    }

    return (
        <>
          {!loading && link && <LinkCard link = {link} />}  
        </>
    )
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)