Javascript nodej有时不传递参数
我建立了一个网站,其中包括一个注册页面,我使用SendGrid的APi发送电子邮件, 但有时它并不像预期的那样有效 下面是调用sendgrid函数的代码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 => {
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代码>。