我有一个路由器。Get调用另一个函数,如下所示:
router.get("/", (req, res) => {
const data = especiaisTest.getEspeciais();
console.log(data);
});
调用的函数是这样的:
function getEspeciais() {
db.query(async (tokenResponse) => {
try {
const response = await axios.get(URL, {
headers: {
Authorization: `Bearer ${tokenResponse.accessToken}`,
},
});
return response.data;
} catch (error) {
console.error(error);
}
});
}
每当我称呼它,我只是得到安慰。记录了一个未定义的。
我尝试返回db之外的值。查询功能,例如:
function getEspeciais() {
db.query(async (tokenResponse) => {
try {
const response = await axios.get(URL, {
headers: {
Authorization: `Bearer ${tokenResponse.accessToken}`,
},
});
return response.data;
} catch (error) {
console.error(error);
}
});
return 'hello'
}
它将在控制台中显示'hello'。我怎样才能响应。从数据库中取出数据。查询以便能够显示数据?
问题码
router.get("/", (req, res) => {
const data = especiaisTest.getEspeciais();
console.log(data);
});
function getEspeciais() {
db.query(async (tokenResponse) => {
try {
const response = await axios.get(URL, {
headers: {
Authorization: `Bearer ${tokenResponse.accessToken}`,
},
});
return response.data;
} catch (error) {
console.error(error);
}
});
}
应:
router.get("/", async (req, res) => {
const data = await especiaisTest.getEspeciais();
async function getEspeciais() {
return db.query(async (tokenResponse) => {
然后你会看到一些其他的东西而不是未定义的。
如果返回undefined,db.query方法不返回任何值。