【发布时间】: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
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
<%=:不是一个有效的结构,ejs也不支持过滤器(像那样)。 -
ejs 确实支持这样的过滤器。请检查这个。 github.com/tj/ejs
-
当您安装
ejs时,您将安装this module。您所引用的页面指出:“注意:EJS 版本 2 对此版本进行了一些重大更改(特别是删除了过滤器功能)”. -
是的。我现在才发现。我不确定删除的原因。但这是一个非常方便的功能。谢谢。
标签: javascript node.js filter ejs