Query возвращает пустой массив - почему?

ScaryBelles спросил: 10 мая 2018 в 04:21 в: node.js

Я пытаюсь получить информацию из моей базы данных PostGres, которая будет отображаться на моем интерфейсе. Я использую реакцию, axios для http-запросов, узел с выражением для моего сервера, массивный для взаимодействия с базами данных на сервере.

В текущем запросе, поскольку у меня есть, возвращается пустой массив. При запуске того же запроса в 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-запросов. У меня есть таблица с именем "люди" и столбец с именем "имя".

SELECT *
FROM people
WHERE name LIKE $1;


1 ответ

Rafa Nogales ответил: 10 мая 2018 в 04:30

Попробуйте ли вы использовать% $ 1% вместо $ 1 в запросе?

ScaryBelles ответил: 10 мая 2018 в 04:39
Я просто попробовал это и получил синтаксическую ошибку. Внутренняя ошибка сервера 500

Дополнительное видео по вопросу: Query возвращает пустой массив - почему?

Axios - Fazendo Requisições para APIRestful - Node.JS

Node.js + Express - Tutorial - GET and POST Requests

GET data from express.js backend using Vue.js