arrays - Pug 能够从 mongo 数据库 Json 访问嵌套数组
问题描述
我正在尝试从 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}
解决方案
repo
是一个 javascript 对象,并且您使用点语法(例如repo.name
or 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 tab interpolation的语法,看起来您在示例中使用不正确。
此外,请查看有关正确使用dd
元素以及如何将它们与dt
元素一起使用的文档。它们还必须是描述列表 ( dl
) 元素的子元素:https ://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl
推荐阅读
- angular - Angular:遵循所有步骤,但模式引导程序不起作用
- python - 由于 RAM 使用过多,我的 google colab 会话崩溃
- reactjs - 代码 - 笔问题:为什么我的元胞自动机反应项目不起作用?
- python - 使用 matplotli、pandas 和 python 绘制基于事件的错误
- python - 提取数据框中一个日期的位置
- reactjs - react js axios没有显示来自django rest api的图像
- javascript - 通过将键传递给 react 和 lodash 中的对象数组来获取值
- c# - 将类名传递给 GenericMethod
, 当 className 存储为 String - reactjs - 待办事项列表上的编辑功能
- typescript - fp-ts:如何将嵌套的`Either`/`TaskEither`“拉起”到外部类型?