Javascript 为什么我的代码发送邮件两次?
我已经使用node-mailer编写了这段代码来发送邮件。当我在cmd中启动服务器并转到Javascript 为什么我的代码发送邮件两次?,javascript,node.js,Javascript,Node.js,我已经使用node-mailer编写了这段代码来发送邮件。当我在cmd中启动服务器并转到localhost:8080时,它会发送两次邮件。为什么会这样 var http = require('http'); var edge = require('edge'); var port = process.env.PORT || 8080; var params = { connectionString: "Data Source=localhost;Initial Catalog=node
localhost:8080
时,它会发送两次邮件。为什么会这样
var http = require('http');
var edge = require('edge');
var port = process.env.PORT || 8080;
var params = {
connectionString: "Data Source=localhost;Initial Catalog=node-test;Integrated Security=True",
source: "SELECT * FROM emailtable"
};
var nodemailer = require("nodemailer");
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: email,
pass: password
}
});
var getTopUsers = edge.func('sql', params);
function logError(err, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write("Error: " + err);
res.end("");
}
var minutes = 1, the_interval = minutes * 60 * 1000;
var emailText = "";
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
//setInterval(function() {
getTopUsers(null, function (error, result) {
emailText=""
if (error) { logError(error, res); return; }
if (result) {
res.write("<ul>");
result.forEach(function(user) {
res.write("<li>" + user.emails + "</li>");
emailText = emailText + user.emails + " ";
//console.log(emailText);
});
res.end("</ul>");
}
else {
}
console.log("just mailed")
smtpTransport.sendMail({
from: email, // sender address
to: email, // comma separated list of receivers
subject: "Hello", // Subject line
text: emailText // plaintext body
}, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
});
});
//}, the_interval);
}).listen(port);
console.log("Node server listening on port " + port);
var http=require('http');
var edge=需要(“edge”);
var port=process.env.port | | 8080;
变量参数={
connectionString:“数据源=本地主机;初始目录=节点测试;集成安全性=True”,
来源:“从emailtable中选择*”
};
var nodeEmailer=require(“nodeEmailer”);
var smtpTransport=nodemailer.createTransport(“SMTP”{
服务:“Gmail”,
认证:{
用户:电子邮件,
密码
}
});
var getTopUsers=edge.func('sql',params);
函数日志错误(err、res){
res.writeHead(200,{'Content-Type':'text/plain'});
res.write(“错误:+err”);
决议结束(“”);
}
var minutes=1,_间隔=minutes*60*1000;
var emailText=“”;
http.createServer(函数(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
//setInterval(函数(){
GetToUsers(空,函数(错误,结果){
emailText=“”
if(error){logError(error,res);return;}
如果(结果){
res.write(“”);
result.forEach(函数(用户){
res.write(“- ”+user.emails+“
”);
emailText=emailText+user.emails+“”;
//console.log(emailText);
});
res.end(“
”);
}
否则{
}
日志(“刚刚邮寄”)
smtpTransport.sendMail({
发件人:电子邮件,//发件人地址
收件人:电子邮件,//以逗号分隔的收件人列表
主题:“你好”//主题行
text:emailText//纯文本正文
},函数(错误,响应){
如果(错误){
console.log(错误);
}否则{
console.log(“发送的消息:+response.Message”);
}
});
});
//}),;
}).监听(端口);
log(“在端口上侦听的节点服务器”+端口);
当您想在浏览器中打开一个页面时,它通常会向服务器发送两个请求,一个请求获取favicon.ico,另一个请求获取页面本身