【发布时间】:2021-12-25 01:26:27
【问题描述】:
我对 NodeJS 有点陌生,并且正在为个人项目使用 API。我需要在数据库中创建帐户,然后向人们发送确认电子邮件。因此,创建帐户的路线首先是在数据库中插入数据,然后获取 insertId 以创建令牌,然后发送一封包含令牌的确认电子邮件。
我正在使用 mysql 包(版本 2.18.1)中的 db.query() 与数据库交互,该数据库是来自 GCloud 的 MySQL 数据库:
db.query("INSERT INTO user SET ?", [data], async (iErr, result) => {
if (iErr) {
res.status(410).jsonp({msg:iErr});
next(iErr);
} else {
const insertedId = result.insertId;
let emailToken = await getEmailToken(insertedId);
// then sending the email using another async method
}
但是,发送的令牌内部没有 id,就像 getEmailToken() 使用“未定义”作为参数一样。
现在有人解决了吗?
谢谢。
编辑:同样的问题出现在电子邮件中,我在其中放置了 req.body.name。它在电子邮件中以“未定义”的形式发送,但在调用路由时给出(我将其存储在数据库中)。
【问题讨论】:
-
您需要提供更多详细信息。你用的是什么数据库?您使用什么库从 Node.js 连接到数据库?请编辑问题并使用此信息进行更新。
-
为什么电子邮件令牌需要其中的 id?该函数的名称表明它会给你一个令牌,给定一个 id,所以它返回一个令牌,然后你可以用它做任何你需要的事情,包括“将它和你已经拥有的 id 一起发送到其他地方”?也就是说,请始终查看您的控制台:此代码将打印错误。
-
嘿,对不起,我是 StackOverflow 的新手,我编辑了我的帖子添加了信息。
-
电子邮件令牌是一个确认令牌。我需要通过电子邮件发送,以便用户验证他们的帐户。这就是为什么我需要生成一个唯一的令牌以通过电子邮件将其发送给用户,其中包含他们的 id。
标签: node.js email variables asynchronous