показывает [объект объекта] отображается вместо свойств объекта - PullRequest
0 голосов
/ 01 июня 2019

Я использую Strapi для создания конечных точек Api и использую эти конечные точки с помощью expressjs.Это все в образовательных целях.

Все работает нормально, кроме отображения свойств объекта в браузере.Конечные точки - http://localhost:1337/restaurants, которые отображают мои данные в формате json:

[{"_id":"5cf19dd4a774126e9ca7f4fd","name":"Strapi Restaurant 1","description":"Strapi restaurant is a cosy restaurant delivering one of the very fastest and nicest dining experiences in the world, combining nods to tradition with fierce modernity, warmth with daring.\n# Strapi restaurant #\n- \n- \n1. \n2. \n3. ","createdAt":"2019-05-31T21:34:12.426Z","updatedAt":"2019-05-31T21:34:12.432Z","__v":0,"id":"5cf19dd4a774126e9ca7f4fd","categories":[{"restaurants":["5cf19dd4a774126e9ca7f4fd"],"_id":"5cf19e00a774126e9ca7f4fe","category":"Italian","createdAt":"2019-05-31T21:34:56.318Z","updatedAt":"2019-05-31T21:35:32.058Z","__v":0,"id":"5cf19e00a774126e9ca7f4fe"}]},{"_id":"5cf1af8ea774126e9ca7f500","name":"Strapi restaurant 2","description":"This is a restaurant that will serve you empty plates with no food. It is for your own good. You will loose weight quickly. Enjoy","createdAt":"2019-05-31T22:49:50.548Z","updatedAt":"2019-05-31T22:49:50.579Z","__v":0,"id":"5cf1af8ea774126e9ca7f500","categories":[{"restaurants":["5cf1af8ea774126e9ca7f500"],"_id":"5cf19e08a774126e9ca7f4ff","category":"Contemporary","createdAt":"2019-05-31T21:35:04.815Z","updatedAt":"2019-05-31T22:49:50.570Z","__v":0,"id":"5cf19e08a774126e9ca7f4ff"}]}]

Мой экспресс-маршрут использует axios для доступа к API, а в ответе отображаются данные, правильно записанные в моем cmd

Теперь мой код маршрута:

var express = require('express');
var router = express.Router();
var axios = require("axios");

/* GET home page. */
router.get('/', function(req, res, next) {
     axios.get('http://localhost:1337/restaurants')
       .then(response => ( res.render('index', { title: response.data}), console.log(response) ));
          });
    module.exports = router;

мой файл PUG просто пытается отобразить «reponse.data» с помощью переменной «title»:

extends layout
block content

  //  response from the strapiapp api
  //  p  restaurant name is : #{title}
  p  Restaurant name is: #{title.name}

Вот скриншотМой cmd enter image description here

Это типичная настройка, и я делал это много раз с разными API.Мой браузер отображает [объект Object], если я использую # {title} и если я использую # {title.name}, он ничего не показывает.Но данные правильно записываются в мой cmd.

Как отобразить объект в моем браузере?title.name и titel.description не работают, но данные регистрируются в моем cmd express, который правильно регистрирует объект данных.

Есть идеи, почему он не отображает свойства объекта?

1 Ответ

1 голос
/ 01 июня 2019

Итак, как прокомментировал Александр, response.data - это массив.Так что вы можете зациклить этот массив для отображения всех данныхЯ раньше не пользовался мопсом, но думаю, что это должно сработать.

ul
  each val in title
    li= val.name
...