【发布时间】:2020-08-19 18:08:06
【问题描述】:
我正在使用 MongoDB、node.js 和 express 构建电影数据库。我目前有两条路线,一条呈现显示数据库中所有电影的页面,另一条显示单个电影的信息。问题是当使用 ejs 为每个单独的电影渲染页面时,我无法解析传递的对象,该对象包含标题、年份和一些图像数组。
在渲染所有电影页面时,我能够解析对象并使用 ejs 显示它。所以我不确定这两条路线的区别是什么。
电影架构
const movieSchema = new mongoose.Schema({
name: String,
date: String,
production: String,
cast: String,
remarks: String,
lobbyCards: Array,
filmStills: [
{
url: String,
caption: String
}
],
behindStills: [
{
url: String,
caption: String
}
],
advertising: [
{
url: String,
caption: String
}
]
});
这是两条路线:
所有电影
app.get('/movies', (req, res) => {
movie.find({}, (err, movies) => {
if (err) {
console.log(err);
} else {
res.render('movies', { movies: movies });
// console.log(movies);
}
});
});
个人电影
app.get('/movies/:name', (req, res) => {
movie.find({ name: req.params.name }, (err, movieData) => {
if (err) {
console.log(err);
} else {
res.render('show', { movieData: movieData });
}
});
});
如果我 console.log(movieData) 它被记录为一个数组。
这是从所有电影页面呈现的内容 All films
这是从个人电影页面呈现的内容 Individual film
【问题讨论】:
-
在 de else 和 res.render 之前...如果你 console.log movieData 显示数据?
-
是的,它 console.logs 数组内的整个对象
-
你能添加
Movie的架构定义吗? -
@eol 架构现已添加到问题中
-
res.render('movies/show', { movieData: movieData }); ??
标签: node.js json mongodb express ejs