1.看来很多帖子,出现这种原因好像是由于koajs的异步同步问题,我们只需为其添加promise,然后使用resolve返回数据即可
2.代码如下:
const getUserMenu = (ctx, next) => {
return new Promise((resolve, reject) => {
const user_id = ctx.params.userid;
const Select_User_Menu =
"SELECT menu.* \
FROM user \
JOIN userrole ON user.user_id = userrole.user_id \
JOIN role On userrole.role_id = role.role_id \
JOIN rolepermission ON role.role_id=rolepermission.role_id \
JOIN permission ON rolepermission.permission_id=permission.permission_id \
JOIN menupermission ON permission.permission_id=menupermission.permission_id \
JOIN menu ON menu.menu_id=menupermission.menu_id \
WHERE user.user_id=?";
db.query(Select_User_Menu, [user_id], (err, res) => {
const body = {
message: res,
status: 200,
};
resolve((ctx.body = body));
});
});
};