节点 JS 查询 request.query 为空
Posted
技术标签:
【中文标题】节点 JS 查询 request.query 为空【英文标题】:Node JS Query request.query is Empty 【发布时间】: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
值
【参考方案1】:
我使用 Axios 让它工作。当我使用带有 url 中的参数的 Axios 执行此操作时,查询仍然为空。当我构建这样的请求时,它可以工作。
axios
.get('https://project-node-js.firebaseapp.com/users',
params:
userId: 'j872as3'
)
.then(function(response)
console.log('Axios Response: ', response);
)
.catch(function(error)
console.log('Axios Error: ', error);
);
我仍然不太清楚这背后的原因,特别是因为网络请求中的 URL 是相同的。
【讨论】:
【参考方案2】: 如果后端系统有超过 1 个查询,则使用&,并用作一个查询与另一个查询之间的连接。
我的建议是删除 &,然后再次测试。
https://project-node-js.firebaseapp.com/users?userId=j872as3
【讨论】:
它仍然说找不到站点 如果您在本地计算机上对其进行测试,并且可以正常工作,那么我认为问题出在部署上。因为当我尝试从我自己的计算机访问 URL project-node-js.firebaseapp.com 时,它也会显示 Site Not Found。 @YashKaranke 该网站有效,但出于客户保密目的,我不得不更改 URL。 url 确实返回具有正确参数的响应。我通过删除&
对其进行了测试,结果仍然相同以上是关于节点 JS 查询 request.query 为空的主要内容,如果未能解决你的问题,请参考以下文章
请求正文为空,POST 节点 js ajax 调用 json Web 令牌
java代码怎样查出树形结构的某个节点的所有子孙节点?要算法实现!!