查询不显示结果后,从前端传递参数?



我正在从我的React前端传递一个搜索参数到我的mySQL Express后端。我的硬编码查询工作,但当我试图在参数传递我的代码不捕获一个错误,但它也不加载任何数据到url。

前端组件:
handleChange = (e) =>{
e.preventDefault();
console.log(e.target.value);
setState(e.target.value);
Axios.get("http://localhost:3000/api/data", {params: {state:state}})
.then(()=>{
console.log("successful GET");
})
}

后端路由器:

router.get('/', async (req, res, next)=>{
let state = req.query.state;
try{
let results = await mysqldb.getCities(state);
res.json(results);
} catch(e){
console.log(e);
res.sendStatus(500);
}
});

后端db:

let mysqldb = {};
mysqldb.getCities = (state) =>{
return new Promise((resolve, reject) =>{
conn.query("SELECT city FROM states_city WHERE state_name=? ORDER BY city", [state], (err, results)=>{
if(err){
return console.log(err);
}else{
console.log("queried succesful " + state);
return resolve(results);
}
})
});
}

RowDataPacket是创建await mysqldb.getCities(state);返回对象的构造函数的名称。

您可以将其转换为常规对象并通过以下方式返回:

let results = await mysqldb.getCities(state);
results = JSON.parse(JSON.stringify(results));
res.json(results);

最新更新