有人可以解释为什么第一次导出抛出 is not a constructor
错误,而第二次导出有效吗?
// Throws a `is not a constructor` error
module.exports = {
Person: function () {
constructor()
{
this.firstname;
this.lastname;
}
}
}
// Works
class Person {
constructor()
{
this.firstname = '';
this.lastname = '';
}
}
module.exports = Person;
// Usage:
const Person = require("person");
let person = new Person();
最佳答案
因为第一次实际导出包含属性的对象时:
module.exports = { /*...*/ };
而且您无法构造该对象。但是,您可以获得 Person 属性并构造它:
const Person = require("person").Person;
new Person();
您还可以解构导入的对象:
const { Person } = require("person");
new Person();
...但这只有在导出其他内容时才有意义,否则我会选择 v2。
关于node.js - 模块.exports : is not a constructor error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53105744/