【问题标题】:Trying to get info from database nodejs / sqlite试图从数据库 nodejs / sqlite 获取信息
【发布时间】:2020-12-15 18:38:57
【问题描述】:

我正在为我的应用程序做一个登录原型,在后端我试图从前端接收信息(电子邮件和密码),以与数据库中的注册信息进行比较并验证用户登录。

这就是我所做的

    const infos = request.query;
    const email = infos.email as string;            // email input frontend
    const password = infos.password as string;      // password input frontend
 
    const checkLogin = await db('usersLoginsDB')    // catching equal from database
    .where('usersLoginsDB.email', '=', email)      
    .where('usersLoginsDB.password', '=', password)
    .select('usersLoginsDB.email', 'email')             
    .select('usersLoginsDB.password', 'password')

在此之后,我有一个 checkLogin 类型为 any[] 并带有电子邮件和密码,我无法执行 checkLogin.email 之类的操作来使用此信息。

我试过了,效果不错

    let resultEmail = checkLogin.map(a => a.email) as unknown;
    let testEmail = resultEmail as string;

但我不确定这是否正确,我想知道是否有其他方法可以让这个 checkLogin.email 工作,或者以其他不同的方式从数据库中获取电子邮件信息而不是使用 .where 和 .select。 提前致谢。

【问题讨论】:

  • 你的db 是什么?它有查询类型吗?

标签: node.js typescript sqlite express backend


【解决方案1】:

可能结帐knex 或任何其他查询生成器。您不需要一次查询所有内容。您可以通过简单的步骤做到这一点:

  1. 如果不抛出错误,查询 dB 以检查用户电子邮件是否存在。
  2. 如果存在用户电子邮件,您现在需要验证密码。查询数据库进行验证。
  3. 如果一切顺利,您可以登录用户。例如,如果您设置了 JWT,则将令牌发回给用户。

【讨论】:

    猜你喜欢
    • 2017-01-02
    • 1970-01-01
    • 2020-07-14
    • 2012-10-31
    • 1970-01-01
    • 2012-06-06
    • 2016-09-03
    • 1970-01-01
    相关资源
    最近更新 更多