Asked Jul 8th, 10:38 PM 42 1 1
  • 42 1 1
+2

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

Share
  • 42 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 ANSWERS


Answered Jul 9th, 3:24 AM
+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)

Share
Anh Tran @thanh_tuan
Jul 9th, 5:47 AM

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 !

0
| Reply
Share
Jul 9th, 7:34 AM

@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 <[email protected]>',
        headers: {
            'X-Laziness-level': 1000 // just an example header, no need to use this
        }
    }
);
+1
| Reply
Share
Anh Tran @thanh_tuan
Jul 9th, 8:19 AM

@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 [,]

0
| Reply
Share