Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 nodej有时不传递参数_Javascript_Node.js_Sendgrid - Fatal编程技术网

Javascript nodej有时不传递参数

Javascript nodej有时不传递参数,javascript,node.js,sendgrid,Javascript,Node.js,Sendgrid,我建立了一个网站,其中包括一个注册页面,我使用SendGrid的APi发送电子邮件, 但有时它并不像预期的那样有效 下面是调用sendgrid函数的代码 app.post('/register', async (req, res) => { {name, email} = req.body const token = makeString(10) newUser .save() .then(user => {

我建立了一个网站,其中包括一个注册页面,我使用SendGrid的APi发送电子邮件, 但有时它并不像预期的那样有效

下面是调用sendgrid函数的代码

app.post('/register', async (req, res) => {
   {name, email} = req.body 
   const token = makeString(10)

   newUser
        .save()
        .then(user => {
             req.flash(
                  'success_msg',
                  `You'll get your token in your email`
             );

             EmailService.sendEmail(name, email, token);
             res.redirect('/users/login');
         })

        .catch(err => console.log(err));
}       
const sendEmail = (name, email, token) => {
    sgMail.send({
        to : email,
        from :'example@example.com',
        subject : `example`,
        text : `Name    : ${name}\n Email   : ${email}\n Your login token : ${token}\n .`
    })
} 
下面是生成令牌的函数

const makeString = (length) => {
    var result           = '';
    var characters       = '0123456789';
    var charactersLength = characters.length;
    for ( var i = 0; i < length; i++ ) {
       result += characters.charAt(Math.floor(Math.random() * charactersLength));
    }
    return result;
 }

有时,令牌不会出现在电子邮件中。我做错什么了吗

当您调用
EmailService.sendmail(姓名、电子邮件、nrp、令牌)时
,该代码中的
标记从何而来?你没有表现出来。我们需要更多的代码上下文。我们可以看到包含
sendmail()
的整个请求处理程序吗?我在这里添加了令牌的字符串生成器和请求处理程序。当你说有时令牌没有显示在电子邮件中时,电子邮件中到底是什么?电子邮件到了吗?当电子邮件无法正常工作时,您能否准确显示电子邮件中的文本?是
${name}
${email}
是否在电子邮件文本中正确显示?是的,只是标记没有显示。您显示的代码中似乎没有任何东西会导致
标记随机不显示,因此代码中一定有其他东西您没有显示给我们,或者
sgMail.send()中有错误。
。在另一个主题上,这个
{name,email}=req.body
看起来应该是
const{name,email}=req.body