简体   繁体   English

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

[英]How to fix “ Unexpected token < ” error in ejs

I'm developing a nodejs logger app , the problem is that when i want to retrieve data to show them in a table ,this error occurs : 我正在开发一个nodejs logger应用程序,问题是当我想检索数据以在表中显示它们时,发生此错误:

<% include('header'); <%include('header'); -%> ^ SyntaxError: Unexpected token < -%> ^ SyntaxError:意外令牌<

My code is as follows : 我的代码如下:

errorcontroller : 错误控制器

 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 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'); %>

is there any problem with my controller ? 我的controller有什么问题吗? or the ejs syntax ? 还是ejs语法?

Node.js cannot require a ejs file. Node.js require ejs文件。

Put error.ejs under ./views directory, and call res.render as follow: error.ejs放在./views目录下,并按如下所示调用res.render

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

See the docs about res.render . 请参阅有关res.render文档

I think you write code in the wrong way it should be something like 我认为您以错误的方式编写代码应该是这样的

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM