Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用switch语句发送电子邮件_Javascript_Node.js_Email_Parameters_Nodemailer - Fatal编程技术网

Javascript 无法使用switch语句发送电子邮件

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

我正在使用node mailer发送电子邮件,并遵循了youtube教程,但我做了一些更改。我希望用户向他/她将选择的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;
}
这可能是有问题的代码块,请告诉我是否需要从源代码中添加/发布更多代码。

开关表达式使用

使用我在注释中要求的调试信息,您将传入一个字符串,并将其与一个数字进行比较。所以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中的值相同。