'calling mutli api in node express react

I am developing custom search engine when people search for somthing my search engine fetch all search engine api that I added and get results to my search engine , i am already added google custom search api now i need to add yahoo and goduckduck so how I can added other api and make my search engine fetch several api ?


const express = require('express');
const bodyParser = require('body-parser');
const logger = require('morgan');
const { SearchController } = require('./routes/search.js');
const { OutlineController } = require('./routes/outline.js');
const path = require('path');
const compression = require('compression');

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

const app = express();
app.use(compression());
app.use(express.static(path.resolve('../', 'build')));
app.use(bodyParser.text());
app.use(logger('dev'));
app.use('/search', SearchController);
app.use('/outline', OutlineController);

const port = process.env.PORT || 1337;

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

import * as express from 'express';
const { Router } = require('express');
const path = require('path');
const { get } = require('axios');

const router: express.Router = Router();

router.get('*', (req: express.Request, res: express.Response, next: express.NextFunction): void => {
  res.sendFile(path.resolve('../', 'build/index.html'));
});

router.post('/:query/:start?', async (req: express.Request, res: express.Response) => {
  const { query, start } = req.params;
  try {
    const { data: { items } } = await get(`
    https://www.googleapis.com/customsearch/v1?key=AIzaSyBexWro6lOuVcfmR5uSFvd-jVY8uee45OA&cx=000950167190857528722:vf0rypkbf0w&start=${start
      ? start
      : 10}&q=${encodeURI(query)}`);
      console.log('this');
    
    res.send(items);
  } catch (error) {
    console.error(error);
  }
});

export const SearchController = router;
const { Request, Response, Router } = require('express');
import * as express from 'express';
const request = require('request');
const unfluff = require('unfluff');

const router: any = Router();

router.post('/:site(*)', (req: express.Request, response: express.Response) => {
  const site = req.params.site;
  request(site, (err: Error, res: any, body: any) => {
    const data = unfluff(body);
    response.send({
      title: data.title,
      text: data.text
    });
  });
});

export const OutlineController = router;


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source