我正在尝试从我的 PostGres 数据库中获取信息以显示在我的前端。我正在使用 react、axios 来处理 http 请求、node with express 用于我的服务器,大量用于服务器内的数据库交互。
当前查询,正如我所拥有的那样,它返回一个空数组。在 pgAdmin 中运行相同的查询时,它会返回正确的信息(我将在查询中插入一个字符串,而不是 $1)部分。我怀疑这个问题与接受搜索名称作为参数并将其作为 $1 在查询中应用有关。
这是我的http请求:
handleNameSearch = () => {
let name = this.state.searchName
axios.get('http://localhost:3003/api/getPerson?name=' + name).then(response => {
this.setState({
searchedNameResults: response.data
})
console.log(response)
})
}
我在服务器中的端点。Req.query.name 具有正确的信息,因此我认为在运行查询之前问题不会出现。
app.get('/api/getPerson', (req, res) => {
const db = req.app.get('db');
console.log(name)
db.searchPeopleByName(req.query.name)
.then(people => {
console.log(people)
res.status(200).send(people)
})
.catch(err => res.status(500).send(console.log(err)))
})
我的 SQL 查询文件。我有一个名为“people”的表和一个名为“name”的列。
SELECT *
FROM people
WHERE name LIKE $1;