Getting "SyntaxError: Unexpected token '/' in...index.ejs while compiling ejs" error after updating npm packages

Getting "SyntaxError: Unexpected token '/' in...index.ejs while compiling ejs" error after updating npm packages

我刚刚从 2.7.4 to 3.1.5 和我项目中的其他一些包更新了 EJS。这样做后,我无法访问任何网页,而是收到错误消息。显然所有页面都会抛出相同的错误。除此之外,我在我的 ejs 模板中的一些代码中遇到了 VS Code 错误,这在以前并不重要。我的意思是在我更新所有 npm 包之前错误就已经存在并且应用程序运行良好。

这是终点:

router.get("/", async (req, res) => {

    try{
        const url           = `http://api.example.co/?key=${process.env.API_KEY}`;
        const fullData      = await axios.get(url);
        
        res.render("../views/index", {data: fullData});
    }catch(err) {
        res.render("../views/index", {data: null});
    }
    
});

这是错误:

这是我在我的 ejs 模板中获取数据的方式:

<% if(data){ %> 
    Name <%= data.name %>        
<% } %>

这是我的 ejs 模板中脚本标签中的代码,显示红色下划线:

<script type="text/javascript" >
    <% if(data) { %>
    var map = L.map('map').setView([<%= data.latitude %>, <%= data.longitude %>], 11);
    var marker = L.marker([<%= data.latitude %>, <%= data.longitude %>]).addTo(map);

    L.tileLayer('https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=boomBoomBoomm', {
    attribution: '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> <a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>'
}).addTo(map);
    <% } %>
</script>

可能是什么问题?难道我做错了什么?某些内容的更新是否与其他内容发生冲突?请帮忙!

找到问题了。显然,较新版本的 EJS 需要以与以前不同的方式包含部分页眉和页脚。

所以改变这个:

<% include ./partials/header %>

<%- include ("./partials/footer") %>

已解决问题。