如何通过NodeJS向端点发出Ajax请求

Sha*_*der 16 ajax node.js q

我正在使用NodeJS.我的一个函数(让我们称之为funcOne)接收一些输入,我传递给另一个函数(让我们称之为funcTwo),它产生一些输出.

在将输入传递给funcTwo之前,我需要对传递输入的端点进行Ajax调用,然后我必须将AJAX调用产生的输出传递给funcTwo.只有在AJAX调用成功时才应调用funcTwo.

我怎样才能在NodeJS中实现这一点.我想知道在这种情况下是否可以使用Q库

Bar*_*klı 13

使用请求

function funcOne(input) { 
  var request = require('request');
  request.post(someUrl, {json: true, body: input}, function(err, res, body) {
      if (!err && res.statusCode === 200) {
          funcTwo(body, function(err, output) {
              console.log(err, output);
          });
      }
  });
}

function funcTwo(input, callback) {
    // process input
    callback(null, input);
}
Run Code Online (Sandbox Code Playgroud)


小智 5

由于请求已被弃用。我建议使用 axios。

npm install axios@0.16.2

const axios = require('axios');

axios.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY')
  .then(response => {
    console.log(response.data.url);
    console.log(response.data.explanation);
  })
  .catch(error => {
    console.log(error);
  });
Run Code Online (Sandbox Code Playgroud)

使用标准http库发出请求将需要更多的精力来解析/获取数据。对于习惯于纯粹使用 Java/JavaScript 发出 AJAX 请求的人来说,我发现 axios 很容易上手。

https://www.twilio.com/blog/2017/08/http-requests-in-node-js.html