Yêu cầu thg 7 8, 2020 10:38 CH 91 1 1
  • 91 1 1
+2

Thắc mắc về Docs của Nodemailer

Chia sẻ
  • 91 1 1

Chào các bạn, mình đang tìm hiểu về Nodemailer và lúc đọc Doc của nó mình có chút thắc mắc như thế này:

  • Về cách sử dụng, lúc đầu bạn cần tạo một đối tượng là transporter như này:
let transporter = nodemailer.createTransport(transport[, defaults])

[source: https://nodemailer.com/usage/]

  • Tuy nhiên đến lúc thực tế dùng thì lại áp dụng thế này:
let transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
      user: testAccount.user, // generated ethereal user
      pass: testAccount.pass, // generated ethereal password
    },
  });

[source: https://nodemailer.com/about/#examples]

Ở đây mình thấy rõ ràng bên trong hàm createTransport mình cần truyền vào một Object với các thuộc tính. Vậy tại sao cái công thức hướng dẫn sử dụng ở trên nó lại viết là createTransport(transport[, defaults]) thì cái này tức là sao ? Bên trong hàm createTransport() nó là cái gì đó ? có phải Object đâu, ở đây sao lại viết thành kiểu Array [] và còn có dấu , bên trong là như nào ?

Bạn nào giải thích giúp m với được không. M thực sự cảm thấy khó hiểu chỗ này. Cám ơn admin và các bạn nhiều !

1 CÂU TRẢ LỜI


Đã trả lời thg 7 9, 2020 3:24 SA
+1

Cái dấu [, defaults] kia thể hiện ở đây là tham số này không bắt buộc(có thể có hoặc không truyền tham số vào) còn cái transport là 1 object, bạn đọc tiếp phía dưới có mô tả nó là gì (smpt và plugin)

Chia sẻ
Avatar Anh Tran @thanh_tuan
thg 7 9, 2020 5:47 SA

Cám ơn b, mình có đọc qua cả phần mô tả ở dưới của Doc nhưng chưa clear được nhiều.

nodemailer.createTransport(transport[, defaults])

Vậy cái [ ] có ý nghĩa là gì và tại sao dấu , lại phải đặt trong cái [ ] vậy bạn. Tại sao không phải là như này ạ :

nodemailer.createTransport({}, defaults)

Bạn support m thêm với !

thg 7 9, 2020 7:34 SA

@thanh_tuan [ ] Một kiểu quy ước viết document thôi bạn. Nghĩa là khi gọi hàm các tham số trong đấy là tùy chọn có thể có hoặc không có

Như cái ví dụ trên của bạn thì cái tham số defaults không được truyền vào Ví dụ dưới đây là có trường defaults

// Create a SMTP transporter object
let transporter = nodemailer.createTransport(
    {
        streamTransport: true,
        newline: 'unix',
        buffer: true,
        // use a normalizer method for header keys
        normalizeHeaderKey: key => key.toUpperCase()
    },
    {
        // default message fields

        // sender info
        from: 'Pangalink <no-reply@pangalink.net>',
        headers: {
            'X-Laziness-level': 1000 // just an example header, no need to use this
        }
    }
);
Avatar Anh Tran @thanh_tuan
thg 7 9, 2020 8:19 SA

@kdg Nếu mà vậy thì mình tưởng phải viết như này mới phải chứ nhỉ:

nodemailer.createTransport(transport, [defaults])

Dấu []options, dấu , để ngăn cách giữa các tham số... đằng này dấu , lại đặt bên trong [,]

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí