Node.js:SyntaxError:意想不到的标记:编译ejs时

我正在尝试使用Node.JS应用filter到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'})); 

我已经使用软件包pipe理器安装了ejs,并且正在使用不带filter的普通脚本(:)。 下载的EJS版本是最新的 – 2.3.3和节点版本是0.12.4。

 npm install ejs 

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

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

 $ npm i ejs@1.x 

我现在知道了 EJS从版本2开始做了一些改变,包括删除filterfunction。 https://github.com/tj/ejs

在ejs v2哟必须但代码没有=或 – 如果有正常的代码或函数,但不是一个对象,如果你有一个对象,你必须开始=或 – 符合Express视图系统静态caching的中间JavaScript Unbuffered代码用于条件等<% code %>默认情况下使用<%= code %>转义html使用<%= code %>非转义缓冲支持标签自定义filter支持devise师友好模板包括客户端支持Newline使用<% code -%><% -%><%= code -%><%- code -%>查看更多信息: https : //github.com/tj/ejs