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));});});
};