无法使用 switch 语句发送电子邮件
Cannot send email using switch statement
我正在使用 node mailer 发送电子邮件并遵循了 youtube 教程,但我做了一些更改。我希望用户向 he/she 将选择的 31 个人中的任何一个发送电子邮件,因此我们将分配给被选择的人的号码称为 classNum。
当我将电子邮件分配给 to
参数时,代码有效,但如果我删除它并使用 switch 语句,它会给出 500 错误。
const sendMail = (email, subject, text,classNum, cb) => {
const mailOptions = {
from: email,
subject,
text,
to: " "
};
switch(classNum) {
case 25:
mailOptions.to = 'thisIsAnEmail@gmail.com'
break;
}
这可能是有问题的代码块,请告诉我是否需要 add/post 来自源代码的更多代码。
switch 表达式使用 strict equality
根据我在评论中要求的调试信息,您正在传递一个字符串并将其与一个数字进行比较。所以 "25" === 25
是假的。
你要么把它变成一个字符串
switch(classNum) {
case "25":
或将 classNum 转换为数字
switch(Number(classNum)) {
case 25:
正如@epascarello 指出的那样,您在 classNum 中有一个字符串,而不是数字;结果,您的“案例”不匹配。您可以通过以下两种方式之一解决此问题:
- 使用 classNum = Number(classNum); 确保 classNum 是一个数字,而不是一个字符串(可能更好,因为 classNum 在变量名中暗示了一个数字);或者
- 将您的 switch case 更改为字符串:case '25':
我认为选项 1 可能更好,同样是因为变量名称暗示了一个数字值。
我正在使用 node mailer 发送电子邮件并遵循了 youtube 教程,但我做了一些更改。我希望用户向 he/she 将选择的 31 个人中的任何一个发送电子邮件,因此我们将分配给被选择的人的号码称为 classNum。
当我将电子邮件分配给 to
参数时,代码有效,但如果我删除它并使用 switch 语句,它会给出 500 错误。
const sendMail = (email, subject, text,classNum, cb) => {
const mailOptions = {
from: email,
subject,
text,
to: " "
};
switch(classNum) {
case 25:
mailOptions.to = 'thisIsAnEmail@gmail.com'
break;
}
这可能是有问题的代码块,请告诉我是否需要 add/post 来自源代码的更多代码。
switch 表达式使用 strict equality
根据我在评论中要求的调试信息,您正在传递一个字符串并将其与一个数字进行比较。所以 "25" === 25
是假的。
你要么把它变成一个字符串
switch(classNum) {
case "25":
或将 classNum 转换为数字
switch(Number(classNum)) {
case 25:
正如@epascarello 指出的那样,您在 classNum 中有一个字符串,而不是数字;结果,您的“案例”不匹配。您可以通过以下两种方式之一解决此问题:
- 使用 classNum = Number(classNum); 确保 classNum 是一个数字,而不是一个字符串(可能更好,因为 classNum 在变量名中暗示了一个数字);或者
- 将您的 switch case 更改为字符串:case '25':
我认为选项 1 可能更好,同样是因为变量名称暗示了一个数字值。