Javascript 无法使用switch语句发送电子邮件
我正在使用node mailer发送电子邮件,并遵循了youtube教程,但我做了一些更改。我希望用户向他/她将选择的31个人中的任何一个发送电子邮件,因此我们将调用分配给被选择人的号码classNum 当我将电子邮件分配给to参数时,代码会工作,但是如果我删除它并使用switch语句,它会给出500错误Javascript 无法使用switch语句发送电子邮件,javascript,node.js,email,parameters,nodemailer,Javascript,Node.js,Email,Parameters,Nodemailer,我正在使用node mailer发送电子邮件,并遵循了youtube教程,但我做了一些更改。我希望用户向他/她将选择的31个人中的任何一个发送电子邮件,因此我们将调用分配给被选择人的号码classNum 当我将电子邮件分配给to参数时,代码会工作,但是如果我删除它并使用switch语句,它会给出500错误 const sendMail = (email, subject, text,classNum, cb) => { const mailOptions = { from: email
const sendMail = (email, subject, text,classNum, cb) => {
const mailOptions = {
from: email,
subject,
text,
to: " "
};
switch(classNum) {
case 25:
mailOptions.to = 'thisIsAnEmail@gmail.com'
break;
}
这可能是有问题的代码块,请告诉我是否需要从源代码中添加/发布更多代码。开关表达式使用
使用我在注释中要求的调试信息,您将传入一个字符串,并将其与一个数字进行比较。所以25==25是假的
你要么把它变成一个字符串
switch(classNum) {
case "25":
或将classNum转换为数字
switch(Number(classNum)) {
case 25:
开关表达式使用
使用我在注释中要求的调试信息,您将传入一个字符串,并将其与一个数字进行比较。所以25==25是假的
你要么把它变成一个字符串
switch(classNum) {
case "25":
或将classNum转换为数字
switch(Number(classNum)) {
case 25:
正如@epascarello所指出的,classNum中有一个字符串,而不是一个数字;因此,您的案例不匹配。您可以通过以下两种方式之一修复此问题: 确保classNum是一个数字,而不是一个字符串可能更好,因为classNum通过使用classNum=numbercassnum在变量名中表示一个数字;或 将开关大小写更改为字符串:大小写“25”:
我认为选项1可能更好,因为变量名意味着一个数值。正如@epascarello所指出的,classNum中有一个字符串,而不是一个数字;因此,您的案例不匹配。您可以通过以下两种方式之一修复此问题: 确保classNum是一个数字,而不是一个字符串可能更好,因为classNum通过使用classNum=numbercassnum在变量名中表示一个数字;或 将开关大小写更改为字符串:大小写“25”:
我认为选项1可能更好,因为变量名意味着一个数字值。它是否进入开关?设置调试器并遍历代码似乎很容易。在switch语句之后,mailpoptions是什么样子的?您确定它没有正确设置字段吗?classNum变量呢?在它进入switch语句之前是什么样子?@epascarello它似乎没有进入switchWell什么是classNum?console.logclassNum,typeof classNum,classNum==25@daddygames在switch语句之后,to和classNum中的值是相同的。它是否进入了switch?设置调试器并遍历代码似乎很容易。在switch语句之后,mailpoptions是什么样子的?您确定它没有正确设置字段吗?classNum变量呢?在它进入switch语句之前是什么样子?@epascarello它似乎没有进入switchWell什么是classNum?console.logclassNum,typeof classNum,classNum==25@daddygames在switch语句之后,to和classNum中的值相同。