Menu
CoddyTech

デフォルトエクスポート

CoddyのNode.jsジャーニー「Node.jsの基礎」セクションの一部。レッスン 8/33。

このレッスンでは、メモを保存するストアという1つのことを扱うファイル、store.jsを追加します。このようなファイルは、その1つのことをデフォルトエクスポートとして公開し、それをインポートするファイルでは任意の名前を付けます。

export defaultは、ファイルが扱う1つの値を示します。インポートする側は任意の名前を付け、中括弧は使いません。

// config.js
const config = { port: 3000 };
export default config;

// app.js
import settings from './config.js';
console.log(settings.port);

中括弧を使うと名前付きエクスポートを指定することになるため、ここではimport { config } from './config.js'は失敗します。config.jsでは何も名前付きでエクスポートしていないからです。ファイルの主要な値にはデフォルトエクスポートを、ヘルパーをまとめたファイルには名前付きエクスポートを使います。

challenge icon

チャレンジ

簡単

メモを保存しておく場所が必要です。新しいファイル store.js はメモを store オブジェクトに保持し、store.notes には最初から3件のメモが入っています。そのストアを notes.js と共有し、add と list で使いましょう。

  1. store.js で、store をファイルのデフォルトエクスポートにします。ファイルの末尾にあるコメントが、その場所を示しています。
  2. notes.js で、formatNote のインポートの隣に、ファイルの先頭でストアをインポートします。デフォルトインポートには波括弧を使いません。
  3. add 分岐では、store.add(text) でメモを追加します。これは新しいメモの番号を返します。Adding: に続けて、その番号で整形したメモを表示します。ストアには最初から3件のメモがあるため、node notes.js add Buy bread を実行すると、次のように表示されます:
    Adding: 4. Buy bread
  4. list 分岐では、Notes for ... の見出しをそのまま残します。その下に、ストア内のすべてのメモを1行ずつ、formatNote で整形し、1から番号を付けて表示するよう、No notes yet を置き換えます。node notes.js list を実行すると、次のように表示されます:
    Notes for you
    1. Buy milk
    2. Call Ada
    3. Water the plants
    ストアにメモがない場合は、見出しの下に No notes yet を表示します。

試してみましょう: $ node notes.js の後ろにある入力欄に add Buy bread と入力し、Enterキーを押します。Adding: 4. Buy bread と表示されます。次に list と入力すると、最初からある3件のメモが表示されますが、Buy bread は表示されません。ストアはメモリ上にあるため、実行するたびに store.js にある3件のメモから始まります。第3章では、メモをファイルに保存します。

自分で試してみよう

// chapter 3でファイルに保存するまでは、メモはここに保持されます。
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

// storeをこのファイルのデフォルトエクスポートにします。

Node.jsの基礎のすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド