无法在ejs中设置undefined属性'round'

Dip*_*ana 3 javascript ejs node.js

我正在从"secrete of ninja"一书中学习nodejs.我有一个ejs程序,我从书中复制,但它显示以下错误,而我没有在程序中进行任何更改.

这是一个错误:

ejs.filters.round = function(number, decimalPlaces) {
               ^ 
 Cannot set property 'round' of undefined
Run Code Online (Sandbox Code Playgroud)

我有这个代码:

 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));
Run Code Online (Sandbox Code Playgroud)

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

Nae*_*ikh 5

可能你使用的是版本2.

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


编辑:

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