VS Code无法识别EJS语法、EJS标签渲染不生效问题求助
EJS标签不渲染问题修复方案
问题和VS Code插件、EJS依赖安装无关,是代码本身存在3处错误,逐一修复即可:
- EJS输出标签语法错误
<% %>是EJS的逻辑执行标签,仅用于写if/for这类JS逻辑代码,输出变量值到HTML必须使用<%= 变量名 %>格式。你写的<%KindOfDay%>缺少输出标识等号,引擎不会解析输出变量内容。
修正后的list.ejs代码:<body> <h1>Its a <%= KindOfDay %> </h1> </body> - path模块使用错误
配置模板路径时你直接调用了path()但未引入path模块,且路径拼接需要用path.join()方法,错误调用会导致服务无法正确定位模板文件。
首先在app.js顶部加引入语句:
再把模板路径配置改为:const path = require('path');
如果你存放ejs文件的文件夹实际命名为app.set('views', path.join(__dirname, 'views'));view,把上述代码里的'views'替换成'view'即可。 - 星期判断逻辑错误
today.getDate()获取的是当前日期在当月的序号(如1号、15号),获取星期需要调用today.getDay(),该方法返回0-6的数值,0为周日、6为周六,和你写的判断规则匹配。
修正后的路由逻辑:app.get("/", (req, res) => { const today = new Date(); const day = today.getDay() === 0 || today.getDay() === 6 ? "Weekend" : "Weekday"; res.render("list", { KindOfDay: day }); console.log(day); });
全部修改完成后重启Node服务,刷新页面即可正常显示预期内容。
内容的提问来源于stack exchange,提问作者Ariyan Rehman Razon
相关产品推荐
相关产品推荐

