Thắc mắc về Docs của Nodemailer
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
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)
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 !
@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
}
}
);