【发布时间】:2020-02-05 10:22:25
【问题描述】:
您好,我需要这方面的帮助。我正在尝试发送电子邮件并等待响应,然后将其作为 json 响应返回给用户。我现在拥有的代码没有返回任何内容我也尝试过添加超时以查看异步等待是否可以解决它,但它不起作用。
mailer.js
"use strict";
const nodemailer = require("nodemailer");
module.exports = async (email, password, name) => {
let testAccount = await nodemailer.createTestAccount();
let transporter = nodemailer.createTransport({
host: "smtp.ethereal.email",
port: 587,
secure: false,
auth: {
user: testAccount.user,
pass: testAccount.pass
}
});
let info = await transporter.sendMail({
from: '"Example user" <example.uesr@retrofit.io>',
to: email,
subject: "Testing all yh?",
text: "Hello world",
html: "<b>Hello world?</b>"
});
return nodemailer.getTestMessageUrl(info);
};
这是我的用户注册码
auth.js
const express = require("express");
const router = express.Router();
const User = require("../models/User");
const neutral_mailer = require("../utils/neutral-mailler");
router.post("/create", async (req, res) => {
const user = new User({
first_name: "Umar",
last_name: "Alli",
company: "Belirs",
email: "umar@belirs.com",
password: "Test",
status: "active",
date: Date.now()
});
try {
await user.save(err => {
if (err) {
res.json({ message: err });
}
const link = neutral_mailer(user.email, user.password, user.first_name);
res.status(201).send(link);
});
} catch (err) {
res.json({ message: err });
}
});```
【问题讨论】:
-
如果你在
transporter.sendMail之后对info执行console.log,它看起来如何? -
您正在混合异步等待和回调,您可以尝试删除异步等待吗?或者只使用回调。
-
返回null还是不返回?
-
@HoratiuJeflea 它返回预期的数据
-
@yeya 它返回 null
标签: node.js