【问题标题】:Node.js: SyntaxError: Unexpected token : while compiling ejsNode.js: SyntaxError: Unexpected token : while compile ejs
【发布时间】:2015-07-16 07:56:53
【问题描述】:

我正在尝试使用 Node.JS 将过滤器应用于 EJS,但出现以下错误。我希望消息内容以大写形式显示。

D:\Apps\Templating\ejs>node server.js
D:\Apps\node_modules\ejs\lib\ejs.js:470
      throw e;
            ^
SyntaxError: Unexpected token : while compiling ejs
    at Function (native)
    at Object.Template.compile (D:\Apps\node_m
odules\ejs\lib\ejs.js:460:12)
    at Object.compile (D:\Apps\node_modules\ej
s\lib\ejs.js:288:16)
    at handleCache (D:\Apps\node_modules\ejs\l
ib\ejs.js:147:16)
    at Object.exports.render (D:\Apps\node_mod
ules\ejs\lib\ejs.js:315:10)
    at Object.<anonymous> (D:\Apps\Templating\
ejs\server.js:3:17)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)

这是我的代码-server.js:

var ejs = require('ejs');
var template = "<%=: message | upcase %>";
console.log(ejs.render(template,{message : 'hello ejs with filter'}));

我已经使用包管理器安装了 ejs,它适用于没有过滤器(:) 的普通脚本。下载的EJS版本是最新的——2.3.3,node版本是0.12.4。

npm install ejs

任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • &lt;%=: 不是一个有效的结构,ejs 也不支持过滤器(像那样)。
  • ejs 确实支持这样的过滤器。请检查这个。 github.com/tj/ejs
  • 当您安装ejs 时,您将安装this module。您所引用的页面指出:“注意:EJS 版本 2 对此版本进行了一些重大更改(特别是删除了过滤器功能)”.
  • 是的。我现在才发现。我不确定删除的原因。但这是一个非常方便的功能。谢谢。

标签: javascript node.js filter ejs


【解决方案1】:

ejs(v2.3.3)的当前版本不支持过滤器,已从版本2中删除。如果要使用过滤器,则需要安装1.x版本:

$ npm i ejs@1.x

【讨论】:

    【解决方案2】:

    我现在发现了这一点。 EJS 从版本 2 开始进行了一些更改,包括删除过滤器功能。 https://github.com/tj/ejs

    【讨论】:

      【解决方案3】:

      在 ejs v2 中,如果有正常代码或函数但没有对象,则必须将代码不带 = 或 - 如果你有一个对象,你必须以 = 或 - 符合 Express view 系统 中间 JavaScript 的静态缓存 条件等的无缓冲代码&lt;% code %&gt; 默认使用&lt;%= code %&gt; 转义html 使用&lt;%- code %&gt; 进行未转义缓冲 支持标签定制 对设计器友好模板的过滤器支持 包括 客户端支持 换行符与&lt;% code -%&gt;&lt;% -%&gt;&lt;%= code -%&gt;&lt;%- code -%&gt; 在此处查看更多信息: https://github.com/tj/ejs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-10
        • 2020-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        • 1970-01-01
        • 2017-11-05
        相关资源
        最近更新 更多