节点JS-将参数传递到多个API请求中

时间:2020-07-02 15:22:53

标签: javascript node.js api

我已经开始学习nodeJS,并创建了一个小的股票网络应用程序,您可以在其中搜索股票行情自动收录器(例如“ TSLA”),它将返回股票信息,例如价格,股票交易所,价格等。我想更进一步,能够获得有关该特定股票的任何新闻。我现在遇到的问题是它目前无法获取和显示新闻。但是,如果我删除了请求API以获取股票信息,则会显示新闻。感谢您的帮助。

// Request API to obtain stock information
function call_api(finishedAPI, ticker){
  request(`https://cloud.iexapis.com/stable/stock/${ticker}/quote?token=`, {json: true}, (err, res, body) =>{
  if (err){ 
    console.log(err)}
  if (res.statusCode === 200){
    // console.log(body)
    finishedAPI(body)
  };
});
};

// Request API to obtain stock news
function news_API(newsAPI, test){
  request(`https://newsapi.org/v2/everything?q=${test}&apiKey=`, {json: true}, (err, res, body) =>{
  if (err){ 
    console.log(err)}
  if (res.statusCode === 200){
    console.log(body.articles[0].author)
    newsAPI(body)
  };
});
};


// Stock page
app.get('/', (req,res) =>{
  call_api(function(doneAPI){
    res.render('index',{ title: 'Stock',
      stock: doneAPI
    });
  }, 'TSLA');
});

//POST data for stock submitting.
app.post('/', (req,res) =>{
  call_api(function(doneAPI){
    res.render('index',{ title: 'Stock',
      stock: doneAPI
    });
  }, req.body.stockText);
});


//News 
app.get('/', (req,res) =>{
  news_API(function(newsAPI){
    res.render('index',{ title: 'Stock',
      stock: newsAPI
    });
  }, 'TSLA');
});

app.post('/', (req,res) =>{
  news_API(function(newsAPI){
    res.render('index',{ title: 'Stock',
      stock: newsAPI.articles[0].author
    });
  }, req.body.stockText);
});

1 个答案:

答案 0 :(得分:1)

两种API都使用相同的路由。 app.get中使用的路由是相同的(“ /”)。 为两个请求使用不同的路线