Почтальон не получает ответ от POST - PullRequest
0 голосов
/ 09 февраля 2020

Использование Express / Node и Postgres (пакет 'pg').

Код:

const createEvent = (request, response) => {

    console.log(request.body);
    const {
        type,
        location,
        current_attendees,
        total_attendees,
        details,
        event_date,
        has_car,
        has_food,
        cover_charge,
        contact_email,
    } = request.body;

    pool.query(`INSERT INTO events (type, location, current_attendees, total_attendees, details, event_date, has_car, has_food, cover_charge, contact_email) VALUES ('${type}', '${location}', ${current_attendees}, ${total_attendees}, '${details}', TO_DATE('${event_date}', 'YYYY-MM-DD'), ${has_car}, ${has_food}, ${cover_charge}, '${contact_email}')`),
                (error, results) => {
                    if (error) {
                        throw error;
                    }
                    console.log(results);
                    response.status(201).send('Event created');                    
                }
}

Маршрут:

router.post('/events', db.createEvent);

Объект вставляется в базу данных просто отлично, и я получаю журнал консоли тела запроса, но я не получаю журнал консоли результатов, и ответ почтальону не отправляется. Время просто истекло.

Я отправляю обычный объект JSON (Тело -> Необработанный -> Текст -> JSON).

postman screenshot

Есть идеи, что происходит? Благодаря.

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Короче говоря - когда ваш код запускается, он получает строку pool.query(...) (которая является асинхронной c функцией) и не ждет ответа, потому что вы не указали, что хотите его ждать. Решением было бы сделать функцию createEvent asyn c:

const createEvent = async (request, response)

и дождаться ответа БД:

await pool.query(...)

Подробнее о асинхронных / ожидающих и / или обещаниях

0 голосов
/ 09 февраля 2020

Я вижу, что URL это http:localhost: 8080 / api / events, вы добавили / api к маршруту, или это суб-маршрутизатор в express

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...