Мопс в состоянии получить доступ к вложенному массиву из базы данных Монго Json - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь вывести зависимости массива от объекта mongodb.Я попробовал почти все, но продолжаю получать длину неопределенной.

Я могу вывести весь объект, но мне нужна версия имени каждой зависимости.

{ _id: 5c6eea28c6c23a15beb43419,
  Repo_id: [ 1 ],
  name: 'express-ibm',
  version: '0.0.0',
  dependencies: 
   [ { name: 'async', version: '2.6.1' },
     { name: 'body-parser@1.18.3', version: '1.18.3' },
     { name: 'cookie-parser@~1.4.3', version: '1.4.3' },
     { name: 'debug@~2.6.9', version: '2.6.9' },
     { name: 'express@~4.16.0', version: '4.16.4' },
     { name: 'http-errors@~1.6.2', version: '1.6.3' },
     { name: 'mongoose', version: '5.3.13' },
     { name: 'morgan@~1.9.0', version: '1.9.1' },
     { name: 'pug@2.0.0-beta11', version: '2.0.0-beta11' } ] }



// Display detail page for a specific Repo
exports.repo_search = function(req, res, next) {
    Repo.findById(req.params.id).populate('repo').exec(function(err, repo) {
        if (err) {
            return next(err);
        }
        if (repo == null) {
            // No results.
            var err = new Error('Repo copy not found');
            err.status = 404;
            return next(err);
        }

        console.log(repo);
        Repo.find().exec(function(err, list) {
            if (err) {
                return next(err);
            }
            res.render('repo_info_detail', {
                title : 'Repo Detail',
                repo  : repo,
                list  : list

                //  repo_dependencies: results.repo_search
            });
        });

    });
};

Мопс:

  extends layout

    block content

      p#demo

      h1 #[Repository Name :] #{repo.name}

      dd #[ IBM Github URL:]
        a(href='/'+repo.url) #{repo.url}
      dd #[ Repository ID:] #{repo._id}
      dd #[ Language Type:] #{repo.filetype}
      dd #[Repo ID :] #{repo.Repo_id}
      //dd #[dependencies: ] #{repo.dependencies.name}



      div(class='col')
      div(class='col-sm-8')
      p
      button.hidediv Hide dependencies
      button.showdiv Show dependencies
      .divdemo
        | Dependencies
        .button
        a#export(href='#', role='button')
          | Click On This Here Link To Export The Table Data into a CSV File

        div(class='col')
        div(class='col-sm-3')
          table
          thead
            tr: th Name
            tbody

              each d in repo
                tr
                td 
                dd #{repo}

1 Ответ

0 голосов
/ 22 февраля 2019

repo - это объект javascript, и вы правильно обращаетесь к его свойствам с использованием точечного синтаксиса (например, repo.name или repo.dependencies).Однако repo.dependencies - это массив объектов.Он не имеет свойства name, к которому можно получить доступ с использованием точечного синтаксиса.Вместо этого вам придется циклически просматривать дочерние объекты и обращаться к каждому из их свойств name по очереди.

h1 Repository Name: #{repo.name}
dl
    dt IBM Github URL:
    dd #[a(href='/'+repo.url) #{repo.url}]
    dt Repository ID
    dd #{repo.Repo_id}
    dt Dependencies
    each dependency in repo.dependencies
        dd #{dependency.name} (v#{dependency.version})

Посмотрите на синтаксис для интерполяции вкладок pug ,похоже, вы неправильно используете его в своем примере.

Кроме того, ознакомьтесь с документацией о правильном использовании элементов dd и о том, как их следует использовать с элементами dt.Они также должны быть дочерними элементами элемента списка описания (dl): https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl

...