无法在 ejs 中设置未定义的 属性 'round'
Cannot set property 'round' of undefined in ejs
我正在从 "secrete of ninja" 书中学习 nodejs。
我有一个 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));
谁能告诉我哪里错了?
可能您使用的是版本 2。
Version 2 of EJS makes some breaking changes with this version
(notably, removal of the filters feature). Source
编辑:
您可以切换到版本 2 之前的版本,或者创建您自己的过滤器对象,然后可以扩展该对象以包含您自己定义的过滤器
我正在从 "secrete of ninja" 书中学习 nodejs。 我有一个 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));
谁能告诉我哪里错了?
可能您使用的是版本 2。
Version 2 of EJS makes some breaking changes with this version (notably, removal of the filters feature). Source
编辑:
您可以切换到版本 2 之前的版本,或者创建您自己的过滤器对象,然后可以扩展该对象以包含您自己定义的过滤器