【发布时间】:2020-01-10 09:45:44
【问题描述】:
我应该从服务器端的 2 个 API 获取数据。我需要使用 projectApi.projects[i].id 作为用户 API 网址的 id 参数来调用用户 API。
我确定server.js 和index.ejs 肯定有错误。
我正在尝试打印:
(projectsApi.projects[i]).name((JSON.stringify(usersApi.group)).user[j]).username
有什么方法可以实现吗?
项目 API
网址: /projects?api_key=YOUR_API_KEY
{
"total":2000,
"projects":[
{
"id":123,
"user_id":435400,
"name":"Project Name"
},
...
]
}
用户 API
项目 ID = 123
网址:/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.ejs
<% 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>
<% } %>
<% } %>
<% } %>
【问题讨论】:
-
请分享收藏?