我有一个对象,我试图将其键和值变量打印到我的浏览器上。对象看起来像这样
{ data:
[ { type: 'product',
name: 'test-prod-2018',
slug: '1',
description: 'This is a test Product',
} ],
links:
{ current: 'https://example.com',
first: 'https://tutorial.com',
last: null },
meta:
{ results: { total: 1, all: 1 },
} }
在我的app.js中,我正在使用
app.get('/', function(req, res) {
var title = Mystore.Products.All().then((products) => {
console.log(products);
});
res.render('index', {
title: title
});
});
在我的index.ejs中,我正在使用
<h1>
<%= title %>
</h1>
这将打印到屏幕
[object Promise]
如果我想显示名称和描述,如何将对象的数据部分中的信息列在屏幕上?屏幕将显示
<h1><%= title:name %></h1>
<h1><%= title:description %></h1>
答案 0 :(得分:0)
在看了一下你的问题之后好了,我想我明白你要做什么以及你目前在做什么。
您将title
设置为等于then
承诺的值,因为没有返回值(我不确定承诺是否可以实现您正在寻找的行为)
即使您只需要产品中的一个标题,目前数据库查询似乎返回所有产品,每个产品都有标题,名称等属性。因此,您需要将所有产品发送到前端并对其进行迭代,或查询一个特定产品并将其发送到前端。我也不确定product
vs title
命名空间是什么,所以我刚用product
代替下面的示例代码
<强> index.js 强>
app.get('/', function(req, res) {
Mystore.Products.All().then((products) => {
res.render('index', {
products: products
});
});
});
<强> index.ejs 强>
<% products.forEach(function(product) { %>
<% for (key in product) %>
<h1>Key: <%= key %></h1>
<h2>Value: <%= product[key] %></h2>
<% } %>
<% } %>