javascript - React 向 Node 发出 Get 请求的问题(快递)
问题描述
正如标题所说,我的反应应用程序的一部分试图从我的数据库中获取一些数据,并根据我传递给它的值进行选择。所以我要继续并首先显示我认为问题所在的代码:
所以首先,这是我的一个表单中向服务器发送请求的函数,我知道代码可能很难看,但我可以从 console.logs 告诉我发送的参数是我打算发送的(一个字符串称为“licenciaInput”
async handleClickLicencia (event) {
event.preventDefault();
console.log(this.state);
console.log("licenciaInput: "+this.state.licenciaInput);
const datoBuscar = this.state.licenciaInput;
axios.get('http://localhost:3001/atletas/:licencia',this.state)
.then(response =>{
console.log(response)
})
.catch(error =>{
console.log(error)
})
然后,我在尝试获取“licencia”的 localhost 路由中调用了这个函数,并在我的 postgresql db 中启动了一个选择,其中 licencia="whatever",你可以在代码中看到这句话:
const getAtletasByLicencia = (request, response) => {
const licencia = request.body.licenciaInput;
console.log("Request: "+request);
console.log("what the server gets: "+licencia);
// const licencia = request.licenciaInput;
const sentencia ="SELECT * FROM atleta WHERE licencia ='"+licencia+"'";
pool.query(sentencia, (error, results) =>{
if(error){
throw error
}
response.status(200).json(results.rows)
})
}
如您所见,我到处都有console.logs,但我仍然无法访问我发送的任何元素,因为我总是在服务器控制台上获得“未定义”值。
TLDR:如何访问从客户端表单传递到服务器的“licenciaInput”,我尝试过 request.body.licenciaInput、request.params.licenciaInput 和 request.licenciaInput,但这些似乎都不起作用
我也知道我必须处理从服务器收到的数据,但我需要先解决这个问题,然后再看两步。我对 React 和 node/express 也很陌生,所以请随时用我没有遇到的好的做法来烧我。提前致谢
编辑:我还添加了我拥有的这段代码,它显示了我在服务器中的方法的路线:
app.get('/atletas/:licencia', db.getAtletasByLicencia)
正如@Gillespie59 建议我应该发送一个 POST 请求,但我认为我不应该尝试向服务器发送参数以进行选择,然后将结果发送回客户端
解决方案
将您的请求更改为:
axios.get(`http://localhost:3001/atletas/${this.state.licenciaInput}`)
...
你的路线(如果你使用快递)应该是这样的:
app.get('/atletas/:licencia', function (req, res) {
var licencia = req.params.licencia
...
})
推荐阅读
- postgresql - PostgreSQL:以用户友好的方式显示表内的交叉引用
- ruby-on-rails - 单击图像时无法移动到页面(使用 gem 'rinku')
- dialogflow-es - 如何创建类似于 @sys.airport 的 Dialogflow 自定义实体?
- microsoft-graph-api - 搜索我的 onedrive 在 ms 图中返回 invalidRequest
- go - 通过 import 生成基于 protobuf 的 go 文件
- asp.net-core - Asp.NET CORE:如何增加特定动作/控制器的请求超时
- c# - Asp.net核心登录身份模板使用安全吗?
- java - 有没有办法每 x 秒刷新一次 webView?
- php - 从 laravel auth 注销时出现错误
- nosql - 不知道对象键的 Cosmos DB 查询