Nodejs API:在 WHERE 语句中使用两个参数进行查询

Posted

技术标签:

【中文标题】Nodejs API:在 WHERE 语句中使用两个参数进行查询【英文标题】:Nodejs API: Query with two parameters in WHERE statement 【发布时间】:2022-01-18 06:19:30 【问题描述】:

我正在编写一个反应原生应用程序,并且有一个查询,其中包含 WHERE 语句中的两个参数。问题是,我不知道如何正确路由它。我已经尝试使用一个参数进行路由,并且它可以工作。但是,当我尝试使用两个参数时,它实际上无法从数据库中获取任何数据。

这是我的代码:

路由:

router.route('/users/user=:username').get((request,response) => 
    operations.getUsers(request.params.username).then(result => 
        response.json(result[0])
    )
)

查询:

let pool = await sql.connect(config);
        let users = await pool.request()
            .input('username', sql.VarChar, user)
            .input('password', sql.Char, pass)
            .query('SELECT * FROM Users_temp WHERE username = @username');
        return users.recordsets;

【问题讨论】:

【参考方案1】:

您可以通过像这样更新查询来解决问题

 .query('SELECT * FROM Users_temp WHERE username = @username and password = @password');

【讨论】:

难道我也不需要更改这部分“操作.getUsers(request.params.username)”吗?还有,这个“router.route('/users/user=:username')”? 如果您正在运行用户登录检查。您应该使用“POST”方法而不是“GET”方法来执行此操作。使用 POST 方法并通过请求正文读取变量

以上是关于Nodejs API:在 WHERE 语句中使用两个参数进行查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句—where条件查询Python解释器详解实现代理池的API模块

如何在带有 select 语句的 where 子句中使用比较运算符?

sql查询语句中on和where的区别

SQL语句中两个表的连接

sql语句借助case when实现自动拼装where条件

表连接查询与where后使用子查询的性能分析。