创建一个公用模板来显示对应id的电影详情
时间: 2024-03-25 11:38:56 浏览: 25
为了创建一个公用模板来显示对应id的电影详情,我们需要做以下几步:
1.在项目的 views 文件夹中,创建一个名为 "movie-details.ejs" 的文件,用于显示电影详情信息。
2.在电影详情路由处理程序中,将找到的电影详情数据传递给模板引擎,并渲染模板。
3.在模板中,使用 EJS 语法来显示电影详情信息。
完整代码如下:
movie-details.ejs:
```html
<!DOCTYPE html>
<html>
<head>
<title>Movie Details</title>
</head>
<body>
<h1><%= movie.title %></h1>
<p>Director: <%= movie.director %></p>
<p>ID: <%= movie.id %></p>
</body>
</html>
```
movies.js:
```javascript
// 引入必要的模块和依赖项
const express = require('express');
const router = express.Router();
// 定义电影数据数组
const movies = [
{ id: 1, title: 'The Shawshank Redemption', director: 'Frank Darabont' },
{ id: 2, title: 'The Godfather', director: 'Francis Ford Coppola' },
{ id: 3, title: 'The Dark Knight', director: 'Christopher Nolan' },
{ id: 4, title: '12 Angry Men', director: 'Sidney Lumet' },
{ id: 5, title: 'Schindler\'s List', director: 'Steven Spielberg' }
];
// 定义路由和处理程序
router.get('/:id', (req, res, next) => {
const movieId = req.params.id;
// 根据电影ID获取电影详情的逻辑
const movie = movies.find(movie => movie.id === parseInt(movieId));
if (movie) {
// 如果找到了对应ID的电影,渲染模板并返回
res.render('movie-details', { movie });
} else {
// 如果未找到对应ID的电影,将控制权传递给错误处理中间件
next(new Error('Movie not found'));
}
});
// 错误处理中间件
router.use((err, req, res, next) => {
res.status(404).json({ error: err.message });
});
// 导出路由模块
module.exports = router;
```
这样,当我们在浏览器中访问 "/movies/1"(假设1是一个有效的电影ID),它将显示如下的电影详情信息:
```
The Shawshank Redemption
Director: Frank Darabont
ID: 1
```