【发布时间】:2019-08-23 00:07:13
【问题描述】:
我想在我的 AngularJS 应用程序中使用一个按钮向 NodeJS 发出客户端 HTTP 请求,然后从 NodeJS 中向第 3 方 API 发出多个服务器端 HTTP 请求。我无法向第 3 方 API 发出多个 HTTP 请求。我正在使用 AngularJS 1.5。
myController.js
function onClick() {
return MyAngularService.lookup()
.then(function(response) {
console.log(response)
})
}
my-angular-service.js
function lookup() {
return $http({
method: 'GET',
url: '/lookup’
})
}
lookup-route.js
const rp = require('request-promise')
const Promise = require('bluebird')
const router = require('express').Router()
router.get('/lookup', lookup)
function lookup(req, res, next) {
const urls = ['https://jsonplaceholder.typicode.com/todos/1', 'https://jsonplaceholder.typicode.com/todos/2']
const doRequest = function(url) {
return rp(url)
.then(function(response) {
return res.json(response)
})
}
const requests = [];
for (let i=0; i < urls.length; i++) {
const url = urls[i]
requests.push(doRequest(url))
}
return Promise.all(requests)
.then(res.json(requests))
}
当我在myController.js 中console.log(response.data) 时,我得到{isFulfilled: false, isRejected: false} 用于我想从中获取数据的每个第3 方网址。
如何将来自 3rd 方 API 的 JSON 返回到我的控制器?
【问题讨论】:
标签: javascript node.js angularjs express request-promise