0

我正在尝试从我的 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;
4

1 回答 1

0

您是否尝试在查询中使用 %$1% 而不是 $1 ?

于 2018-06-03T18:10:34.213 回答