我试图了解并找出在通过require导入的节点js中使用模块的更好方法。
以下是我找到的两种可能方式。
class BookManager {
constructor() {
this._validator = require('validator');
this._BookModel = require('api/book').BookModel;
this.createNewBook = this.createNewBook.bind(this);
}
}
和
const validator = require('validator');
const BookModel = require('api/book').BookModel;
class BookManager {
constructor() {
this.createNewBook = this.createNewBook.bind(this);
}
}
在第一种情况下,我们将所有必要对象封装为类的成员。根据我之前使用其他语言的经验,这可能会被构造函数的依赖注入所取代。
但封装一个类定义对我来说似乎有点奇怪。所以它也可能就像那样
const BookModel = require('api/book').BookModel;
class BookManager {
constructor() {
this._validator = require('validator');
this.createNewBook = this.createNewBook.bind(this);
}
}
但我不确定Node JS哪种方式更可取,为什么。
有人可以解释这些差异,特别是关于范围。
感谢。