Menu
CoddyTech

Export mặc định

Thuộc phần Kiến thức cơ bản về Node.js trong hành trình Node.js của Coddy. Bài học 8 trên 33.

Bài học này thêm store.js, một tệp chỉ xoay quanh một việc: lưu trữ các ghi chú của bạn. Tệp như vậy xuất một giá trị duy nhất làm export mặc định, còn tệp nhập giá trị đó có thể đặt tên tùy ý.

export default đánh dấu giá trị duy nhất mà tệp xoay quanh. Tệp nhập đặt tên tùy ý cho giá trị đó và không dùng dấu ngoặc nhọn:

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

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

Dấu ngoặc nhọn dùng để nhập một giá trị được export theo tên, vì vậy import { config } from './config.js' sẽ lỗi ở đây: config.js không export giá trị nào có tên config. Dùng export mặc định cho giá trị chính của một tệp, còn export theo tên cho tệp chứa các hàm tiện ích.

challenge icon

Thử thách

Dễ

Ghi chú cần có một nơi để lưu trữ. Tệp mới store.js chứa các ghi chú trong đối tượng store, bắt đầu với ba ghi chú trong store.notes. Chia sẻ store đó với notes.js, rồi dùng nó trong add và list.

  1. Trong store.js, đặt store làm export mặc định của tệp. Chú thích ở cuối đánh dấu vị trí cần đặt.
  2. Trong notes.js, import store ở đầu tệp, bên cạnh import formatNote. Import mặc định không có dấu ngoặc nhọn.
  3. Trong nhánh add, thêm ghi chú bằng store.add(text). Hàm này trả về số thứ tự của ghi chú mới. In ra Adding: rồi đến ghi chú được định dạng kèm số thứ tự đó. Store bắt đầu với ba ghi chú, nên node notes.js add Buy bread in ra:
    Adding: 4. Buy bread
  4. Trong nhánh list, giữ tiêu đề Notes for .... Bên dưới, thay No notes yet bằng tất cả ghi chú trong store, mỗi ghi chú trên một dòng, được định dạng bằng formatNote và đánh số từ 1. node notes.js list in ra:
    Notes for you
    1. Buy milk
    2. Call Ada
    3. Water the plants
    Nếu store không có ghi chú nào, vẫn in No notes yet bên dưới tiêu đề.

Thử nhé: nhập add Buy bread vào ô sau $ node notes.js rồi nhấn Enter. Bạn sẽ thấy Adding: 4. Buy bread. Sau đó nhập list: bạn sẽ thấy ba ghi chú ban đầu, nhưng không thấy Buy bread. Store nằm trong bộ nhớ, nên mỗi lần chạy đều bắt đầu lại với ba ghi chú trong store.js. Chương 3 sẽ lưu ghi chú vào tệp.

Tự làm thử

// Các ghi chú nằm ở đây cho đến khi chương 3 lưu chúng vào một tệp.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

// Đặt store làm giá trị xuất mặc định của tệp này.

Tất cả bài học trong Kiến thức cơ bản về Node.js

Tự luyện tập: Playground Express