gpt4 book ai didi

node.js - PostgreSQL REST API Node.js CRUD - 字符串查询参数给出错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:26 25 4
gpt4 key购买 nike

我正在设置我的第一个 REST API 来查询我设置的 Postgres 数据库。我有两种 CRUD 方法,当前可以分别查询表中的所有行和 ID = some 的行。

当请求参数是字符串时尝试查询时,出现了我遇到的问题。这是我收到的错误:

error: invalid input syntax for type integer: "NaN"

以下是我设置 GET 路由和端点 URL 的方法:

const getShowByTitle = (request, response) => {
const title = request.params.title
pool.query('SELECT * FROM show WHERE title = $1', [title], (error, results) => {
if (error) {
throw error
}
response.status(200).json(results.rows)
})
}

app.get('/show/:title', getShowByTitle)

预期结果是使用节目标题作为参数(字符串)发送 GET 请求会返回该节目的 JSON 响应。

任何有用资源的帮助或指导将不胜感激。谢谢。

最佳答案

这里有一些问题,首先在 SQL 中,表的名称应该是复数形式“shows”,其次你要进行不带引号的选择,你需要类似的东西:

"SELECT * FROM show WHERE title = '$1'"

第三,由于用户可以使用大写和小写,因此您需要一种更强大的方式来使用 LIKE、ILIKE 和 ~、~* 运算符来搜索文本。

https://www.2ndquadrant.com/en/blog/text-search-strategies-in-postgresql/

第四,也是更重要的一点,您没有过滤字符串,并且面临 SQL 注入(inject)的风险,因为“UPDATE admins SET password='newsom22th88';”将在您的数据库中执行。

关于node.js - PostgreSQL REST API Node.js CRUD - 字符串查询参数给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59991482/

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