在NodeJS方法和全局方法中使用模块的最佳方法

时间:2017-05-11 14:32:31

标签: javascript node.js module scope ecmascript-6

我试图了解并找出在通过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哪种方式更可取,为什么。

有人可以解释这些差异,特别是关于范围。

感谢。

0 个答案:

没有答案