Я хочу проверить, находится ли пользователь в моей базе данных. Результат имеет значение в rowDataPacket. 0, если пользователь не существует и 1, если он существует. как мне получить доступ к этому значению?
connection.query("SELECT EXISTS(SELECT 1 FROM users WHERE name = ?)", username, function (err, result) {
if (err) {
console.error(err);
return;
}
console.log(result[0]); // miserable attempts
console.log(result[0].body);
console.log(result[0].log);
который выводит:
RowDataPacket {'EXISTS (SELECT 1 FROM users WHERE name = \' Test_user_name\')': 0} undefined undefined
как я могу получить доступ только к возвращаемому значению 0 или 1. (0 в приведенном выше случае)
заранее спасибо :)
EDIT: Я искал более чистое решение, но это работает:
var str = JSON.stringify(result[0]); var userExist = str[str.length - 2];
при использовании stringify не забудьте установить модуль
установка: $ npm install json-stringify --save
Документация: https://www.npmjs.com/package/json-stringify
Вы можете использовать ключевое слово "AS" в своем запросе, например:
SELECT EXISTS(SELECT 1 FROM smm.fb_users WHERE id = ?) AS cnt
Затем вы можете получить доступ к этому значению следующим образом:
console.log(results[0].cnt);