我有一个 express 应用程序,“/”路由呈现一个 index.ejs 文件,其中包含一些数据。 此文件包含另一个 cars.ejs 文件
<%- include('cars') %>
如果定义了汽车对象,这个 cars.ejs 会呈现一张汽车表:
<% if (typeof cars !== 'undefined') { %> <% const cars = cars ?? []; %>
因此,当客户端调用“/”时,if 条件不满足且汽车表未呈现,这没有问题。
我的问题是当我调用“/cars”路线时:
router.get('/cars/:key', async function (req, res) {
const ci = new CarsManager();
const cars = await ci.getcars(req);
console.log(cars)
res.render('cars', { cars: cars });
});
console.log 正确打印汽车,但服务器在 cars.ejs 文件中生成以下错误:
初始化前无法访问“汽车”。
我不明白为什么我现在收到这个错误,因为已经定义了汽车对象。 发生这种情况是因为 cars.ejs 包含在 index.ejs 中吗?
是否有更好的方法来管理这个用例?
我是否可以使用 ejs 模板有条件地呈现页面的某些部分?
提前谢谢你