gpt4 book ai didi

node.js - 使用用户输入返回 postgreSQL 数据库记录

转载 作者:搜寻专家 更新时间:2023-10-31 23:56:25 25 4
gpt4 key购买 nike

我的 Node/express 应用程序遇到了拦截器。

我想从 postgresSQL 数据库表中返回数据,但要使用用户传递的查询参数...

假设如下:

  • db 是一个 postgresSQL 数据库池连接。

  • Trips 表已创建并填充了目的地值为“尼日利亚”的旅行。

下面是我的模型和 Controller 代码。

模型.js

const getTrips = async ( column, value )=> {
const query = 'SELECT * FROM trips WHERE $1 = $2';

const { rows } = await db.query ( query, [value] );

return rows;
}

Controller .js

const getTrips = async ( req, res) => {
const { destination } = req.query;

const result = await Trips.getTrips( 'destination' destination );

console.log( result.length )
}

我面临的问题

Url = http://.../?destination="Nigeria"

当我直接从用户传递 destination 查询参数时,像这样 Trips.getTrips('destination', destination ),返回一个空数组。

但是,如果传递了与查询参数值等效的字符串,例如 Trips.getTrips('destination', 'Nigeria'),则会返回一个数组,其中包含匹配 Nigeria 作为目的地的 Trips。

检查完成

  • console.log(typeof destination)//返回字符串。

  • console.log(目标)//返回“尼日利亚”

问题

  1. 为什么直接传递参数不返回适当的记录,而传递其等效字符串返回适当的记录?

最佳答案

尝试去掉 URL 查询中的引号 (Url = http://.../?destination=Nigeria)。看起来您正在按字面意思查询 "Nigeria"(包括引号)。这有帮助吗?

关于node.js - 使用用户输入返回 postgreSQL 数据库记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57025520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com