Javascript 为什么我的代码发送邮件两次?

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

我已经使用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-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,另一个请求获取页面本身