代码之家  ›  专栏  ›  技术社区  ›  skip

Nodemailer:ERR_CONNECTION_RESET与AngularJS和NodeJS与POST

  •  1
  • skip  · 技术社区  · 10 年前

    以下是我试图使用post方法从AngularJS发送到NodeJS的帖子数据:

    $scope.doStuff = function(foo, bar) {
        $http({method: 'post', url: '/send', data: {foo: foo, bar: bar}}).
            success(function(data, status, headers, config) {
                console.log(data);
        });
    };
    

    下面是我如何使用NodeJS在服务器端接收数据:

     router.post('/send',function(req,res){
    
        var transporter = nodemailer.createTransport({
            service: 'Gmail',
            auth: {
                user: 'foobar@gmail.com',
                pass: 'foobar'
            }
        });
        var mailOptions = {
            from: 'Foo Bar ✔ <foobar@gmail.com>',
            to: req.body.foo, // list of receivers
            subject: "Hello FooBar", 
            text: 'Hello ' + req.body.foo,
            html: "<p>Hello FooBar, you rock!</p>"
        };
        transporter.sendMail(mailOptions, function(error, info){
            if(error){
                console.log(error);
            }else{
                console.log('Message sent: ' + info.response);
            }
        });
    });
    

    我正在尝试使用nodemailer发送电子邮件,我已经能够发送电子邮件了。 但我得到了 POST http://localhost:3000/send net::ERR_CONNECTION_RESET 在发送请求后,在控制台上。 有时我也会 POST http://localhost:3000/send net::ERR_EMPTY_RESPONSE 在控制台上。

    有人能帮我理解为什么我会在控制台上看到它,以及如何解决它吗?

    2 回复  |  直到 10 年前
        1
  •  3
  •   user3995789    10 年前

    您不会从路线返回响应。

    res.send(200)
    
        2
  •  1
  •   Ravi    10 年前

    以前我和 nodemailer 模块,我也有同样的问题。可能是服务器配置错误,因为代码在我的本地服务器上运行良好。在现场,它显示 Error: connect ECONNREFUSED 。我已经尝试了很多方法来解决这个问题,但都没有成功。因此,最后我切换到了其他模块,即。 Mailer .
    这对我来说很好,你可以试一试。