Я должен получить данные от 2 API на стороне сервера. Мне нужно вызвать API пользователя, используя projectApi.projects[i].id
в качестве параметра id для URL пользовательского API.
Я уверен, что должны быть ошибки в server.js
и index.ejs
.
Я пытаюсь распечатать:
(projectsApi.projects[i]).name
((JSON.stringify(usersApi.group)).user[j]).username
Есть ли способ сделать это возможным?
Project API
URL: / projects? api_key = YOUR_API_KEY
{
"total":2000,
"projects":[
{
"id":123,
"user_id":435400,
"name":"Project Name"
},
...
]
}
Пользовательский API
Идентификатор проекта = 123
url: / projects / 123 / group? api_key = YOUR_API_KEY
{
"total":1,
"group":[
{
"id":1,
"user":[
{
"id":435400,
"username":"User Name"
}
]
}
]
}
service. js
const rp = require("request-promise");
app.get('/users', function (req, res) {
var id = req.params.id;
var url_project = '/projects' + apiKey;
var url_user = '/projects/' + id + '/group' + apiKey;
Promise
.all([rp({uri: url_project, json:true}), rp({uri: url_user, json:true})])
.then(([projectsApi, usersApi]) => {
res.render('index', {projectsApi, usersApi});
}).catch(err => {
console.log(err);
res.sendStatus(500);
});
});
index.e js
<% for (var i = 0; i < (projectsApi.projects).length; i++) { %>
<div><%= (projectsApi.projects[i]).name %></div>
<% for (var j = 0; j < (JSON.stringify(usersApi.group)).user).length; j++) { %>
<% if ((projectsApi.projects[i]).user_id == (JSON.stringify(usersApi.group)).user[j]).id) { %>
<div><%= ((JSON.stringify(usersApi.group)).user[j]).username%></div>
<% } %>
<% } %>
<% } %>