1. ホーム
  2. javascript

[解決済み] Node.jsのES6クラスをrequireで作る

2022-07-15 14:21:53

質問

これまで、私はクラスやモジュールを node.js でクラスやモジュールを作成してきました。

    var fs = require('fs');

var animalModule = (function () {
    /**
     * Constructor initialize object
     * @constructor
     */
    var Animal = function (name) {
        this.name = name;
    };

    Animal.prototype.print = function () {
        console.log('Name is :'+ this.name);
    };

    return {
        Animal: Animal
    }
}());

module.exports = animalModule;


ES6では、このように実際のクラスを作成することができます。

class Animal{

 constructor(name){
    this.name = name ;
 }

 print(){
    console.log('Name is :'+ this.name);
 }
}

さて、まず第一に、私はこれが大好きです :) が、ここで疑問が生じます。これをどのように node.js のモジュール構造と組み合わせてどのように使うのでしょうか?

例えば、あるクラスでモジュールを使いたい場合、デモンストレーションのために、例えば fs

を使いたいので、ファイルを作成します。


アニマル.js

var fs = require('fs');
class Animal{

 constructor(name){
    this.name = name ;
 }

 print(){
    console.log('Name is :'+ this.name);
 }
}

これは正しい方法でしょうか?

また、私のnodeプロジェクト内の他のファイルにこのクラスをどのように公開するのでしょうか?また、別のファイルで使用している場合でも、このクラスを拡張することができるのでしょうか?

これらの質問に答えてくれる人がいることを望みます :)

どのように解決するのですか?

はい、あなたの例でうまくいきます。

クラスを公開する方法として、あなたは export を使えば、他のクラスと同じように

class Animal {...}
module.exports = Animal;

あるいはもっと短い

module.exports = class Animal {

};

一度他のモジュールにインポートすれば、そのファイルで定義されているかのように扱うことができます。

var Animal = require('./Animal');

class Cat extends Animal {
    ...
}