Перенаправить нулевой запрос на выборку - PullRequest
0 голосов
/ 29 января 2020

Значение передается через панель поиска на веб-странице, которая добавляется к URL-адресу и используется для получения JSON данных. Однако он работает нормально, если предполагается, что API не имеет данных для null.

Как проверить, что данные нулевые, и перенаправить их до того, как они будут загружены моей веб-страницей.

api. js

const fetch = require('node-fetch');

module.exports = (app) => {

        let ticker;

        app.post('/search-ticker', (req, res) => {

                ticker = req.body.ticker;

                if(!ticker || ticker.length > 5) {
                        res.redirect('/error');
                } else {
                    res.redirect('/stock-data');
                }

        })

        app.get('/search-ticker-data', (req, res) => {

                const baseurl = 'https://api.twelvedata.com/time_series?symbol=';
                const apiid = '&interval=1day&outputsize=1000&apikey=XXX';

                const stockurl = (url1, url2, ticker) => {

                    let newurl = url1 + ticker + url2;
                    return newurl;
                };

                const stocklink = stockurl(baseurl, apiid, ticker);

                fetch(stocklink)
                .then(res => res.json())
                .then(data => {
                    res.send({ data });
                }) 
                .catch(err => {
                    res.redirect('/error')
                });

                }                

        })

}

NULL JSON ДАННЫЕ

Object
 data:
  data: null
  message: "There is an error in the query. Please check your query and try again."
  status: "error"

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Просто убедитесь, что данные в вашем .then()

fetch(stocklink)
 .then(res => res.json())
 .then(data => {

   //check if data is null
   if (data && !data.data) {

      res.redirect('/error');
      return;
   }

   res.send({ data });
 }) 
 .catch(err => {
   res.redirect('/error')
 });
нулевые
0 голосов
/ 29 января 2020

Вы можете использовать ax ios, чтобы сделать запрос и сохранить ответ в переменной и проверить, является ли он нулевым или нет. Если null, сделайте что-нибудь еще, сделайте другое Использование:

`
var res = await axios.get("url");
let data = res.data;
if(data !== null)
    //do something
else 
    //do something
`
...