nodejs如何异步返回数据?
星号那一排会打印出undefined,
search函数中该被return的数据是有我需要的数据的,
页面也收不到数据,哪里除了问题啊?
页面请求的数据格式是
await axios
.get("/api/", {
params: {
type: "search",
searchtext: this.searchtext
}
})
.then(function(response) {
if (response.data.result == "success") {
// Do something
} else if (response.data.result == "safetytest") {
// Do something
}
})
.catch(function(error) {
// Do something
});
服务器:
// 监听路径
app.get("/api/", function (req, res) {
var resdata = {};
// 查看是否为查询
switch (req.query["type"]) {
case "search":
search(req.query["searchtext"])
// ***************************************
.then(resdata => { console.log(resdata); res.json(resdata) })
.catch(e => { console.log });
break;
case "***":
// other
break;
default:
// other
}
});
async function search(searchtext) {
var resdata = {};
// 安全检查
if (safetytest(searchtext)) {
pool.getConnection(function (err, connection) {
if (err) throw err;
connection.query(
"SELECT * FROM `***` where ***=?",
searchtext,
function (err, result) {
if (err) throw err;
resdata = {
uid: result[0].uid,
aname: result[0].aname,
lng: result[0].lng,
lat: result[0].lat,
address: result[0].address,
telephone: result[0].telephone
};
return resdata;
}
);
});
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
pool.getConnection
跟connection.query
如果没有promise/async写法的话,你就手动实现各promise吧。有的话可能就是这样了。