Javascript 使用express从搜索表单重定向?

Javascript 使用express从搜索表单重定向?,javascript,express,Javascript,Express,我是新手,在搜索表单中键入一个词并重定向到一个包含结果的新页面后,尝试调用外部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_te

我是新手,在搜索表单中键入一个词并重定向到一个包含结果的新页面后,尝试调用外部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);
    }
  });
});
我的哈巴狗文件现在只是一个搜索表单。由于我正在调用一个外部api,我对从
get
请求重定向感到困惑

我想加载应用程序,将搜索表单设置为主页,提交要搜索的术语,然后重定向到包含结果的另一个页面

我是否错误地认为我需要重定向到另一个
get
路径,该路径“获取”包含搜索表单的初始
get
路径的结果

我是否错误地认为我需要重定向到另一个get路径,该路径“获取”包含搜索表单的初始get路径的结果

是的,你是

您需要两条路由,并且根本不需要重定向

  • 为HTML表单提供服务的路由
  • 读取提交的表单数据并返回HTML格式搜索结果的路由
  • 浏览器应该请求第二个路由,因为它的URL是在表单的
    action
    属性中指定的

    console.log(主体)
    应替换为调用
    res.render
    ,其中包括要在模板中呈现的搜索结果