【问题标题】:How to access data passed from dyamic route from express.js to react.js如何访问从 express.js 到 react.js 的动态路由传递的数据
【发布时间】:2021-10-09 23:02:50
【问题描述】:

这是我的后端路由,我从 URL 获取文件名作为参数并访问该文件。如何访问从这条路由传递到我的前端 react.js 的数据??

router.route("/list/:filename").get((req, res) => {
    fs.readFile("./api/assignment_data/" + req.params.filename + ".json", function read(err, data) {
        if (err) {
            throw err;
        }
        const content = data;
        foundFile => res.json(foundFile)
        console.log("sent")
    })
})

在我的前端我正在做这样的事情,

useEffect(() => {
        fetch("/list/:filename").then(res => {
            if (res.ok) {
                console.log("all ok")
                return res.json()
            }
        }).then(jsonRes => setMetrics(jsonRes))
    })

【问题讨论】:

    标签: node.js reactjs express mern express-router


    【解决方案1】:

    我认为只要您发送正确的文件名,您所做的一切都是正确的 foundFile => res.json(foundFile) 因为您没有发送任何文件作为回报,也许您可​​以尝试用 res.status(200).json({data}); 替换该行,这应该可以工作

    【讨论】:

    • 我做了这个 res.status(200).send(data) 并且它正在工作但不知道为什么 useEffect 被无限调用..它只是没有停止..有;t 一个问题,但调试 console.log 一直在无限打印..我是不是在某个地方搞砸了?
    • 兄弟,我认为问题出在这里...反应代码中的 fetch 不知道那是什么 :filename 并因此寻找路由 ""/list/:filename"" 将文件名作为仅路由而不是更改的变量...我如何告诉 react 查找已传递的名称?
    • 我希望他发布了正确的文件名,例如user.json,而不是实际的:filename
    【解决方案2】:

    你使用 useeffect 的方式是错误的

    useEffect(() => {
            fetch("/list/:filename").then(res => {
                if (res.ok) {
                    console.log("all ok")
                    return res.json()
                }
            }).then(jsonRes => setMetrics(jsonRes))
        },[])
    

    这样它只会运行一次

    【讨论】:

    • 它仍然显示代理错误:无法将请求 /lists/:filename 从 localhost:3000 代理到 localhost:3001。请参阅nodejs.org/api/errors.html#errors_common_system_errors 了解更多信息 (ECONNRESET)。
    • 可能是因为您正在发送请求以响应 localhost:3000 的服务器尝试将其发送到托管服务器的任何地方(例如:localhost:5000 或 localhost:8080)
    • 是的,它正在快速服务器上工作,但我想要前端的数据
    • 你必须是,检查浏览器上的网络选项卡或只是console.log(res.json()) 也检查res.ok===true
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2018-05-24
    相关资源
    最近更新 更多