Я создал метод удаленного входа с использованием метода loopback user.login. Функциональность работает хорошо, но я не могу отправить ответ. Метод завершает себя перед отправкой ответа. Вот мой код:
user. js
async function findUserRole(userId) {
return await userRole.find({
where: {
user_id: userId
},
include: {
relation: 'role'
},
}).then(async function (res) {
let isProvider = false;
let isCustomer = false;
let userResponse = JSON.parse(JSON.stringify(res));
for (let index = 0; index < userResponse.length; index++) {
if (userResponse[index].role.role_code === "CST") {
isCustomer = true;
} else if (userResponse[index].role.role_code === "PVI") {
isProvider = true;
}
}
if (isCustomer && isProvider) {
console.log("here");
return {code: 3, success: true, error: false, response: userObject, accessToken: accessToken};
} else {
if (isCustomer) {
return {code: 1, success: true, error: false, response: userObject, accessToken: accessToken};
} else if (isProvider) {
return {code: 2, success: true, error: false, response: userObject, accessToken: accessToken};
} else {
return await user.logout(accessToken, function (err) {
if (err)
return {success: false, error: true, response: "No role found"};
});
}
}
}).catch(function (errorResponse) {
return errorResponse.message;
});
}
};
user.remoteMethod(
'loginUser', {
http: {
path: '/login-user',
verb: 'post',
},
returns: {
arg: 'Result',
type: 'string',
},
accepts: [
{arg: 'loginObject', type: 'object', http: {source: 'body'}}
]
}
);
Я получаю правильные результаты, когда я консоль данных через поток, но всегда получаю пустой ответ, куда бы я ни отправил его из метода User.login.