我的Node/express
应用程序中遇到了阻止程序。
我想从 postgresSQL 数据库表中返回数据,但是要通过用户传递的查询参数来完成此操作...
db是一个postgresSQL数据库池连接。
旅行表已经创建,并填充了以目标值为“尼日利亚” 的旅行。
下面是我的模型和控制器代码。
model.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')
,则将返回一个Trips与尼日利亚匹配的数组作为目的地。
console.log(typeof destination) // returns string.
console.log (destination) // returns "Nigeria"
答案 0 :(得分:1)
尝试删除URL查询(Url = http://.../?destination=Nigeria
)中的引号。似乎您是从字面上查询"Nigeria"
(包括引号)。这有帮助吗?