【发布时间】:2020-03-21 10:36:12
【问题描述】:
我有一个 ReactJS 前端,我正在使用 Express 后端对我的 NodeJS 进行 fetch 调用,以获取返回的数据。我正在将 nodejs 应用程序部署到 Firebase Cloud Functions。我用于获取请求的 url 中包含参数,但 nodejs 中的查询似乎为空。
React JS 获取请求:
export const nodeJSFetch = async () => {
const url =
'https://project-node-js.firebaseapp.com/users?&userId=j872as3';
try {
const response = await fetch(proxyURL + url);
const json = await response.json();
return Promise.resolve(json);
} catch (error) {
console.log('Error: ', error);
return Promise.reject(error);
}
};
带有Express功能的NodeJS:
app.get('/users', (request, response) => {
const query = request.query;
const json = { user: query, hello: 'new response' };
response.json(json);
});
当我在本地运行 Node JS 并使用 http://localhost:5000/users?&userId=j872as3 访问 URL 时,我得到以下 JSON 返回:
{
"user":{
"userId":"j872as3"
},
"hello":"new response"
}
当我从 fetch 中取回 JSON 时,我得到任何空查询/用户:
{
"user":{},
"hello":"new response"
}
我只是想知道我在这里缺少什么以及为什么查询似乎是空的。谢谢
【问题讨论】:
-
proxyURL + url到底想做什么?最后的字符串是什么? -
什么是proxyURL?
-
@DougStevenson 代理 url 是我用来进行 fetch 调用以解决 CORS 问题的代理
https://project-cors-proxy.herokuapp.com/https://project-node-js.firebaseapp.com/users?&userId=j872as3是最终的 url 字符串 -
问题可能出在代理中。可以分享一下代理的代码吗?
-
@JoseV 我最终删除了代理并仅在节点 js 响应上启用了 cors。我得到了回复,但仍然没有
request.query值
标签: node.js reactjs express google-cloud-functions