#mysql #node.js #stored-procedures
#mysql #node.js #хранимые процедуры
Вопрос:
Сохраненный процесс в MySQL
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_users`(IN `IN_Token` VARCHAR(50))
NO SQL
BEGIN
Select user_id, name, email
FROM tbluser
where is_active = 1 and api_token != IN_Token;
END$$
DELIMITER ;
Код для отправки запроса в сохраненный Процесс
let sql = "SET @IN_Token='" data.token "';";
sql = "CALL sp_user_chat_users(@IN_Token);";
this.connection.query(sql, function (error, results, fields) {
console.log(results);
});
Ниже приведен результат в консоли?
Вопрос
Поскольку в результате получается 3 объекта. Является ли хорошей практикой писать жесткий код, подобный приведенному ниже, для возврата массива RowDataResult?
results[1];
- Есть 2 пакета Ok
- Есть один RowDataPacket
Ответ №1:
В моем случае я собираюсь использовать Array, например
в mysql,
test = function(callback) {
#connecting db;
var sql = ~~~;
this.connection.query(sql, function (error, results, fields) {
if(error) {
throws err;
}
result(null, results);
});
}
затем в коде js
app.get('something', function(req, res) {
test( function(err, data) {
console.log(data[0].fieldCount);
console.log(data[1].fieldCount);
});
});
вот так.