我正在使用NodeJS。我的一个函数(让我们称之为funcOne)接收一些输入,我传递给另一个函数(让我们称之为funcTwo),这会产生一些输出。
在我将输入传递给funcTwo之前,我需要对传递输入的端点进行Ajax调用,然后我必须将AJAX调用产生的输出传递给funcTwo。只有在AJAX调用成功时才应调用funcTwo。
我如何在NodeJS中实现这一目标。我想知道在这种情况下是否可以使用Q Library
答案 0 :(得分:13)
使用request
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);
}
答案 1 :(得分:3)
为什么不使用NodeJS https.request() API?
(如果您不需要HTTPS,则为http.request()
答案 2 :(得分:0)
因为请求已被弃用。我建议使用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);
});
使用标准的http库发出请求将需要更多的精力来解析/获取数据。对于曾经纯粹使用Java / JavaScript发出AJAX请求的人,我发现axios很容易上手。
https://www.twilio.com/blog/2017/08/http-requests-in-node-js.html