如何修复ejs中的“意外令牌<”错误

时间:2019-09-11 11:34:47

标签: javascript html node.js mongodb ejs

我正在开发nodejs记录器应用程序,问题是当我想检索数据以在表中显示它们时,会发生此错误:

  

<%include('header'); -%>   ^   语法错误:意外的令牌<< / p>

我的代码如下:

错误控制器

 const controller = require('app/http/controllers/controller');
 const errors = require('resource/views/error.ejs');
 var error = require('app/models/error');
 var logs ;

 class errorController extends controller {
    show(req,res){
         error.find({})
             .then(res.render(errors, { results : results }))
   }
  }

   module.exports = new errorController();

error.ejs

<% include('header'); %>


<div class="list-group">
  <% results.forEach((results) => { %>
    <a href="/geterrors %>" class="list-group-item">
      <h4 class="list-group-item-heading"><%= results.cid %></h4>
      <p class="list-group-item-text"><%= results.stacktrace %></p>
    </a>
  <% }) %>
</div>

<% include('footer'); %>

我的controller有问题吗?或ejs语法?

2 个答案:

答案 0 :(得分:3)

Node.js无法require一个ejs文件。

error.ejs放在./views目录下,并按如下所示调用res.render

res.render('error.ejs', {results: results})

有关res.render,请参见docs

答案 1 :(得分:1)

我认为您以错误的方式编写代码应该类似于

class errorController extends controller {
    show(req,res){
         error.find({})
             .then(()=>res.render('error.ejs', {results: results}))
   }
  }