我尝试在stackoverflow中找到答案,但无法找到任何答案 我刚开始学习NodeJS。我有一个问题,有什么方法可以用他的函数导出整个对象,或者我只能导出对象的函数?
感谢您的建议!
当我尝试它时,我得到了这样的错误
TypeError: object is not a function
我得到了这样的简单代码:
animal.js
var Animal = {
name : null,
setName : function(name) {
this.name = name;
},
getName : function() {
console.log("name of animal is " + this.name);
}
}
exports.Animal = Animal;
和server.js
var animal = require('./animal');
var ani = new animal.Animal();
答案 0 :(得分:2)
错误是因为new
期望Function
而Animal
是普通Object
。
但是,使用Object
,您可以使用Object.create()
创建实例:
// ...
var ani = Object.create(animal.Animal);
否则,您必须将Animal
定义为构造函数Function
:
function Animal() {
this.name = null;
// ...
}
exports.Animal = Animal;
注意:根据您要完成的内容,Function
是Object
的一种类型,可以包含其他属性。
function Animal(name) {
this.name = name || Animal.defaultName;
}
Animal.defaultName = null;