使用 mysql2 和 typescript 从查询中读取值

问题描述

我开始使用 TypeScript,但我有一个疑问: 在我的函数中:

    export const signin = async (req: Request,res: Response) => {
    const conn = await connect();
    const user: [Array<User>] = await conn.query(
        'SELECT * FROM users WHERE email = ? LIMIT 1',[req.body.email]);
    if (!user) return res.status(400).json("Email or Password is wrong");
    if (user) return res.status(400).json("Email is ok");
    const correctPassword = await validatePassword(req.body.password,user.password);
    if (!correctPassword) return res.status(400).json("Invalid Password");
    // Create a Token
    const token: string = jwt.sign(
        { _id: user.Id },process.env["TOKEN_SECRET"] || "");
    res.header("auth-token",token).json(token);
};

我想读取结果以检查密码并生成令牌,但我无法访问查询结果..

我最好的拍摄是:

export const signin = async (req: Request,[req.body.email]);
    res.json(user[0]);
};

结果没问题:

[
    {
        "id": 10,"username": "Carla","email": "email@email.com","password": "$2a$10$32ghLjPeTalXy/YPLNe/p.s8nGmGcI23niMlkqSg9erN5Tdu02e4u","created_at": "2021-02-20T07:40:36.000Z"
    }
]

我有一个名为 User 的界面:

export interface User {
    id?: string;
    username: string;
    email: string;
    password: string;
    created_at: Date;
}

问题是我无法读取 user[0].email,例如,我不知道如何访问 TextRow。

[
[1]   TextRow {
[1]     id: 10,[1]     username: 'Carla',[1]     email: 'email@email.com',[1]     password: '$2a$10$32ghLjPeTalXy/YPLNe/p.s8nGmGcI23niMlkqSg9erN5Tdu02e4u',[1]     created_at: 2021-02-20T07:40:36.000Z
[1]   }
[1] 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)