Невозможно получить однопользовательские данные из списка - REST API - PullRequest
0 голосов
/ 06 января 2019

маршруты

user.js

вид

layout.ejs

user.ejs

users.ejs

app.js

REST API - "https://reqres.in/api/users?page=2"

У меня есть два запроса GET. Users.ejs отображает три динамические кнопки с href, также динамические. User.ejs отображает одного пользователя.

Я передаю идентификатор пользователя users.ejs, чтобы, когда пользователь нажимает эту кнопку, он будет отображать user.ejs и ссылка будет, например, на 127.0.0.1:8080/1, 127.0.0.1:8080/2, 127.0.0.1:8080/3.

Но всякий раз, когда я нажимаю любую из кнопок, URL становится "http://127.0.0.1:8080/%20+".

user.js

const express = require("express");
const router = express.Router();
const request = require("request");

global.url = "https://reqres.in/api/users?page=2";

router.get("/users", (req, res) => {
request.get(url, function(err, resp, body) {
 const parse = JSON.parse(body);

res.render("users", {
    obj : parse
    });
  });
});

router.get("/:id", (req, res) => {
request.get(url, (err, resp, body) => {
const obj = JSON.parse(body);
global.user = obj.data[req.params.id];

console.log('USER:', user);

res.render('user', { 
    user
    });
  });
});

module.exports = router;

users.ejs

<% obj.data.forEach(function(o) { %>
<button type="button" class="btn btn-info">
<a href="/ + <%= JSON.stringify(user) %> "> 
    <%= o["first_name"] %> 
</a>
</button>
<% }); %>

user.ejs

<h1><%= JSON.stringify(user) %></h1>

1 Ответ

0 голосов
/ 06 января 2019

В этом случае вам нужно использовать индекс внутри цикла forEach:

<% obj.data.forEach(function(o, index) { %>
<button type="button" class="btn btn-info">
<a href="/<%= index %> "> 
    <%= o["first_name"] %> 
</a>
</button>
<% }); %>
...