Я пытаюсь создать api с помощью sailsjs, который вызывает хранимые процедуры базы данных MYSQL. Я решил отделить запрос, добавив его в службу, чтобы другие функции могли их вызывать и использовать. Ниже я придумал.Возвращает данные из database.query() с помощью sailsjs
в/API/контроллер/MySqlController
getAllUsers: function (req, res) {
MySqlSpService.spGetAllUsers(function(err, result){
if(err) return res.serverError(err);
return res.ok(result[1]);
});
},
в/API/услуги/MYSQLService
var MySqlSpService= {
spGetAllUsers: function(callback) {
Database.query('call userDb.sp_get_all_users(@message, @mystatus)', function (err, results) {
callback(err, results);
}); // end query
}
module.exports = MySqlSpService;
Когда я попал в апи данные отображаются точно, как я думал, что это будет. Но проблема в том, что когда я пытаюсь вызвать службу spGetAllUsers и назначать переменную, я получаю неопределенное значение.
Как это:
var users = MySqlSpService.spGetAllUsers(function(err, result){
if(err) return res.serverError(err);
return result[1];
});
Я считаю, что проблема с обратными вызовами, но я не уверен, как получить данные из запроса. Я искал ответ, но я не могу найти правильные условия поиска, соответствующие моей проблеме. Любая помощь будет принята с благодарностью. Спасибо заранее.
Спасибо, это помогло, я использую обещания для async! – user990951