Node.js:SyntaxError:意外的令牌:编译ejs时

her*_*101 1 javascript filter ejs node.js

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

这是我的code- server.js:

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

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

npm install ejs
Run Code Online (Sandbox Code Playgroud)

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

rob*_*lep 6

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

$ npm i ejs@1.x
Run Code Online (Sandbox Code Playgroud)