作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
运行 Node.js@0.8.15 + Express@3.0.4 + Jade@0.27.7 + Stylus@0.31.0。由于某种原因出现以下错误。有人知道这是什么意思吗?
我不认为我在做任何奇怪的事情。这是在我执行以下操作时发生的:res.render(view, response);
Property 'visitFunction' of object #<Object> is not a function
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:176:32)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:161:10)
at Object.Compiler.visitBlock (/app/node_modules/jade/lib/compiler.js:253:12)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:176:32)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:161:10)
at Object.Compiler.compile (/app/node_modules/jade/lib/compiler.js:78:10)
at parse (/app/node_modules/jade/lib/jade.js:101:23)
at Object.exports.compile (/app/node_modules/jade/lib/jade.js:163:9)
at Object.exports.render (/app/node_modules/jade/lib/jade.js:215:17)
at View.exports.renderFile [as engine] (/app/node_modules/jade/lib/jade.js:243:13)
最佳答案
您可能会收到该错误的原因之一是因为您向 Object.prototype
添加了新属性(通常是方法)
例子:
Object.prototype.someNewMethod = function (value1, value2) {
// ... perform some operations
return this;
};
如问题 #1033 中所述,不推荐向 Object
添加新属性的方式对于 express 项目。 Object.defineProperty应该与 enumerable
设置为 false
一起使用。
使用 Object.defineProperty
扩展 Object
的示例
Object.defineProperty(
Object.prototype,
'someNewMethod',
{
writable : false,
// Will not show up in enumerable properties (including for-in loop).
enumerable : false,
configurable : false,
value : function (value1, value2) {
// ... perform some operations
return this;
}
}
);
我遇到了完全相同的问题,使用 Object.defineProperty
和 enumerable:false
来定义新属性解决了这个问题。
希望对您有所帮助。
关于javascript - visitFunction 错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784309/
运行 Node.js@0.8.15 + Express@3.0.4 + Jade@0.27.7 + Stylus@0.31.0。由于某种原因出现以下错误。有人知道这是什么意思吗? 我不认为我在做任何奇
我是一名优秀的程序员,十分优秀!