首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ejs不呈现ejs文件

Ejs不呈现ejs文件
EN

Stack Overflow用户
提问于 2022-03-08 10:25:50
回答 1查看 477关注 0票数 1

我想建立一个队列系统来创建pdf文件。我创建了一个节点服务器并使用了Express框架。另外,我还使用了rabbitmq作为队列系统。我设置了查看引擎ejs。

代码语言:javascript
复制
app.set('view engine', 'ejs');
app.use(Express.static(__dirname + "/views"));

我的文件夹结构是

代码语言:javascript
复制
consumers
   --consumer_report.js
views
   report.ejs
   report
       --environment.ejs
       --consultans.ejs
       --map.ejs

当用户想要创建一个pdf时,我将它重定向到队列中。队列正在计算一些数据。计算之后,我使用了呈现ejs文件。

代码语言:javascript
复制
createReport(msg.user, msg.reportID, msg.type, msg.packetName, (err, data) => {
    data.packet = msg.packetName;

    let dirUrl = __dirname + "/../views/report.ejs";
    let opts = {
        async: true
    }

    ejs.renderFile(dirUrl, data, opts, (err, html) => {
        if (err) return console.error(err);
        console.log("html", html);
    });
});

报告Ejs

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" style="zoom:0.75;">
<head>
    <meta charset="UTF-8">
    <title>Report</title>
    <link rel="stylesheet" href="<%= host %>/css/rp.css">
    <script src="<%= host %>/js/jquery3.2.1.min.js"></script>
    <script src="<%= host %>/js/highcharts.js"></script>
    <script src="<%= host %>/js/rp.js"></script>
</head>
<body>
<% for(let i of index){brackets = i.i_page; title= i.name %>
<% if(brackets=="environment") {%> <%- include report/environment.ejs %> <% } %>
<% if(brackets=="consultant") {%> <%- include report/consultants.ejs %> <% } %>
<% if(brackets=="map") {%> <%- include report/map.ejs %> <% } %>
<% } %>
</body>
</html>

当呈现ejs文件时,我会得到以下错误

编译ejs时,/home/aaa/Desktop/projects/report/consumers/../views/report.ejs中的

错误SyntaxError:缺少)

我找不到错误。我的错误在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 12:17:08

您需要将包含语法更改为include(path),如文档所示:

注意:在v3.0+中不支持包含预处理器指令(<%包含用户/显示%>)。https://github.com/mde/ejs

试试这个:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" style="zoom:0.75;">
<head>
    <meta charset="UTF-8">
    <title>Report</title>
    <link rel="stylesheet" href="<%= host %>/css/rp.css">
    <script src="<%= host %>/js/jquery3.2.1.min.js"></script>
    <script src="<%= host %>/js/highcharts.js"></script>
    <script src="<%= host %>/js/rp.js"></script>
</head>
<body>
<% for(let i of index){brackets = i.i_page; title= i.name %>
<% if(brackets=="environment") {%> <%- include('report/environment.ejs') %> <% } %>
<% if(brackets=="consultant") {%> <%- include('report/consultants.ejs') %> <% } %>
<% if(brackets=="map") {%> <%- include('report/map.ejs') %> <% } %>
<% } %>
</body>
</html>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71393402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档