我正在学习nieja" secrete of ninja"书。 我有一个ejs程序,我从书本复制到运行,但它显示以下错误,而我没有对程序进行任何更改。
这是一个错误:
ejs.filters.round = function(number, decimalPlaces) {
^
Cannot set property 'round' of undefined
我有这段代码:
var ejs = require('ejs');
var template = '<%=: price * 1.145 | round:2 %>';
var context = {price: 21};
ejs.filters.round = function(number, decimalPlaces) {
number = isNaN(number) ? 0 : number;
decimalPlaces = !decimalPlaces ? 0 : decimalPlaces;
var multiple = Math.pow(10, decimalPlaces);
return Math.round(number * multiple) / multiple;
};
console.log(ejs.render(template, context));
任何人都可以建议我在哪里错了吗?
答案 0 :(得分:5)
可能您使用的是版本2.
EJS版本2对此版本进行了一些重大更改 (特别是,删除过滤器功能)。 Source
<小时/> 编辑:
您可以切换到版本2之前的版本,也可以为过滤器创建自己的对象,然后可以将其扩展为包含您自己定义的过滤器