Object 未在 ejs 文件中解析
Object not being parsed in ejs file
我正在使用 MongoDB、node.js 和 express 构建电影数据库。我目前有两条路线,一条路线呈现显示数据库中所有电影的页面,另一条路线显示单个电影的信息。问题是当用 ejs 渲染每一部电影的页面时,我无法解析传递的 object,它包含标题、年份和一些图像数组等内容。
渲染所有电影页面时,我能够解析 object 并使用 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 Ejs file
Individual Film Ejs file
这是从“所有电影”页面呈现的内容
All films
这是个人电影页面呈现的内容
Individual film
如果你想从数据库中获取单个文档,你可能想使用:
movie.findOne({ name: req.params.name }, (err, movieData) => { ... }
使用 .find()
即使只有一个文档匹配查询,也会返回一个数组,这就是电影对象无法在您的 ejs 中显示的原因。
我正在使用 MongoDB、node.js 和 express 构建电影数据库。我目前有两条路线,一条路线呈现显示数据库中所有电影的页面,另一条路线显示单个电影的信息。问题是当用 ejs 渲染每一部电影的页面时,我无法解析传递的 object,它包含标题、年份和一些图像数组等内容。
渲染所有电影页面时,我能够解析 object 并使用 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 Ejs file
Individual Film Ejs file
这是从“所有电影”页面呈现的内容 All films
这是个人电影页面呈现的内容 Individual film
如果你想从数据库中获取单个文档,你可能想使用:
movie.findOne({ name: req.params.name }, (err, movieData) => { ... }
使用 .find()
即使只有一个文档匹配查询,也会返回一个数组,这就是电影对象无法在您的 ejs 中显示的原因。