Javascript 获得邮枪';发送错误的HTTP头';
我有一个简单的函数,返回一个状态和一些JSON。 通过表单输入,我将用户数据保存到数据库中,同时通过mailgun向该用户发送电子邮件。所有工作正常,但终端可能出现错误 这就是代码Javascript 获得邮枪';发送错误的HTTP头';,javascript,reactjs,express,mongoose,mailgun,Javascript,Reactjs,Express,Mongoose,Mailgun,我有一个简单的函数,返回一个状态和一些JSON。 通过表单输入,我将用户数据保存到数据库中,同时通过mailgun向该用户发送电子邮件。所有工作正常,但终端可能出现错误 这就是代码 exports.signup=(请求、回复)=>{ 常量错误=验证结果(req); 如果(!errors.isEmpty()){ 返回res.status(422.json)({ //错误:[errors.array()[0].msg | | errors.array()[1].msg], 错误:[ { msg:e
exports.signup=(请求、回复)=>{
常量错误=验证结果(req);
如果(!errors.isEmpty()){
返回res.status(422.json)({
//错误:[errors.array()[0].msg | | errors.array()[1].msg],
错误:[
{
msg:errors.array()[0]。msg,
参数:错误。数组()[0]。参数,
},
],
});
}
const user=新用户(请求主体);
const{email,name}=req.body;
user.save((错误,用户)=>{
如果(错误){
返回res.status(400).json({
错误:“无法在数据库中保存用户”,
});
}否则{
res.json({
name:user.name,
电子邮件:user.email,
id:user.\u id,
//密码:user.password,
});
}
//邮枪-发送邮件
常数数据={
来自:me@samples.mailgun.org",
致:电邮:,
主题:“使用邮枪发送邮件”,
文字:“测试一些邮枪的威严!”,
html:`Hey${name}
欢迎,有你在船上真是太好了,
};
mg.messages().send(数据、函数(错误、正文){
//log(“成功向用户发送邮件”);
如果(错误){
返回res.json({
错误:error.message,
});
}
res.json({message:“电子邮件已成功发送”});
});
});
};代码>这是开发人员在向客户端发送响应时的常见错误之一
这是一个执行错误。它与Mailgun API无关
如果仔细查看代码,在将用户数据写入数据库后,您将发送响应
res.json({
name: user.name,
email: user.email,
id: user._id,
// password: user.password,
});
同样,邮件发送后,您将向客户端发送响应
res.json({message:“电子邮件已成功发送”})代码>
如果我是对的,这一定是问题所在
可能的解决方案是,将代码更改为以下内容:
exports.signup = async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({
// error: [errors.array()[0].msg || errors.array()[1].msg],
errors: [
{
msg: errors.array()[0].msg,
param: errors.array()[0].param,
},
],
});
}
const user = new User(req.body);
const { email, name } = req.body;
let userData = "null"
try {
userData = await user.save();
}
catch(err){
return res.json({
error: err.message,
});
}
// mailgun - sending the mail
const data = {
from: "me@samples.mailgun.org",
to: email,
subject: "sending mail using mailgun",
text: "Testing some Mailgun awesomness!",
html: `<h1>Hey ${name} </h1>
<h2>Welcome , It's great to have you on board! </h2>`,
};
mg.messages().send(data, function (error, body) {
// console.log("mail send to user successfully");
if (error) {
return res.json({
error: error.message,
});
}
return res.json({ message: "Email has been send successfully",...userData });
});
});
};
exports.signup=async(req,res)=>{
常量错误=验证结果(req);
如果(!errors.isEmpty()){
返回res.status(422.json)({
//错误:[errors.array()[0].msg | | errors.array()[1].msg],
错误:[
{
msg:errors.array()[0]。msg,
参数:错误。数组()[0]。参数,
},
],
});
}
const user=新用户(请求主体);
const{email,name}=req.body;
让userData=“null”
试一试{
userData=wait user.save();
}
捕捉(错误){
返回res.json({
错误:err.message,
});
}
//邮枪-发送邮件
常数数据={
来自:me@samples.mailgun.org",
致:电邮:,
主题:“使用邮枪发送邮件”,
文字:“测试一些邮枪的威严!”,
html:`Hey${name}
欢迎,有你在船上真是太好了,
};
mg.messages().send(数据、函数(错误、正文){
//log(“成功向用户发送邮件”);
如果(错误){
返回res.json({
错误:error.message,
});
}
返回res.json({message:“电子邮件已成功发送”,…userData});
});
});
};
感谢您回答我的问题,但我已经找到了解决方案。。。我删除了这行代码res.json({message:“Email已成功发送”})代码>。因为我不需要登录控制台进行确认