【发布时间】:2018-10-25 18:57:48
【问题描述】:
在 React 中使用 NodeJs 的正确方法是什么?
目前我正在运行Node on port 3000 和React on port 3001
现在,我的节点我有这条路线
app.get("/", (req, res) => {
console.log(req.user)
res.json(req.user)
})
这里console.log 在我手动转到localhost:3000 时显示用户详细信息,但是如果我从对上述给定网址的反应中发出 axios 请求,它会显示未定义。
componentWillMount() {
axios.get("http://localhost:3000/").then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
}
现在,req.user 是从护照谷歌战略和我获得的,因为来自 localhost:3000 的日志显示了数据,而来自 localhost:3001 的日志没有显示数据。
如果我以正确的方式使用节点,我会感到困惑吗?即通过axios发送请求并通过res.json获取数据
此外,由于大部分教程或我遵循的教程都使用 EJS 而不是 React,而用户大多使用 res.render
我只是想知道 res.render 在 NodeJS 中的等效性
[更新:]我正在通过谷歌浏览器中的插件启用跨源资源共享
【问题讨论】:
-
您正在发出跨域请求 (CORS),端口 3001 与 3000。如果您在 Chrome 中检查控制台,它将向您显示警告,即数据将在返回给您之前被清除。
-
@croraf 我正在通过谷歌浏览器中的插件启用跨源资源共享
-
您使用正确。事实上,这与 React 无关。你只是错过了一些关于 CORS 的东西。我最近遇到了同样的问题,当浏览器中返回的数据设置为未定义时,节点正在发送正确的数据。你在 node 中使用 koa 吗?
-
你使用 create-react-app 吗?
-
@croraf 不。谷歌搜索 koa
标签: javascript node.js reactjs