无法设置属性' round'在ejs中未定义的

时间:2015-03-17 09:52:54

标签: javascript node.js ejs

我正在学习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));

任何人都可以建议我在哪里错了吗?

1 个答案:

答案 0 :(得分:5)

可能您使用的是版本2.

  

EJS版本2对此版本进行了一些重大更改   (特别是,删除过滤器功能)。 Source

<小时/> 编辑:

您可以切换到版本2之前的版本,也可以为过滤器创建自己的对象,然后可以将其扩展为包含您自己定义的过滤器