在未指定变量的情况下访问RowDataPacket

时间:2018-07-08 11:56:20

标签: mysql node.js

我想检查用户是否在我的数据库中。结果在 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(从用户名= \'Test_user_name \'的用户中选择1个)':0} 未定义 未定义

如何仅访问返回值0或1(在上述情况下为0)

提前感谢:)

编辑: 我一直在寻找一种更清洁的解决方案,但这行得通:

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

1 个答案:

答案 0 :(得分:0)

您可以在查询中使用关键字“ AS”,例如:

SELECT EXISTS(SELECT 1 FROM smm.fb_users WHERE id = ?) AS cnt

然后您可以像这样访问值:

 console.log(results[0].cnt);