Перенаправление из формы поиска с помощью экспресс? - PullRequest
0 голосов
/ 09 октября 2018

Я новичок в этом и пытаюсь вызвать внешний API после ввода термина в форму поиска и перенаправления на новую страницу с результатами.Это то, что у меня есть.

const express = require('express');
const request = require('request');
const path = require('path');
const app = express();
const PORT = 3000;
const url =
  'https://www.example.com/api/search_term?query=';

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.listen(PORT, () => {
  console.log(`Example app listening on port ${PORT}!`);
});

app.get('/search', (req, res) => {
  res.render('search', { title: 'Hey', message: 'Hello there!' });
});

app.post('/results', (req, res) => {
  const term = req.body.term;
  request(`${url}term`, (error, response, body) => {
    if (!error && response.statusCode === 200) {
      console.log(body);
    }
  });
});

Мой PUG-файл на данный момент является просто формой поиска.Поскольку я звоню на внешний API, я запутался в том, что нужно перенаправить запрос get.

Я хочу загрузить приложение, установить форму поиска в качестве домашней страницы, отправить термин впоиск, а затем перенаправить на другую страницу, содержащую результаты.

Неправильно ли я думать, что мне нужно перенаправить на другой get маршрут, который "захватывает" результаты исходного get маршрута, который содержит форму поиска

1 Ответ

0 голосов
/ 09 октября 2018

Неправильно ли я думать, что мне нужно перенаправить на другой маршрут получения, который "захватывает" результаты из начального маршрута получения, который содержит форму поиска

Да, вы есть.

Вам нужны два маршрута и вообще никаких перенаправлений.

  1. Маршрут, который обслуживает форму HTML
  2. Маршрут, который считывает отправленные данные формы и возвращает HTMLрезультаты поиска в формате

Браузер должен запросить второй маршрут, поскольку его URL-адрес указан в атрибуте action формы.

console.log(body); следует заменить вызовомres.render, который включает результаты поиска, которые будут отображаться в шаблоне.

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