1

以下是我尝试使用 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控制台。

有人可以帮助我理解为什么我会在控制台上得到它以及如何解决它?

4

2 回答 2

3

您不会从您的路线返回响应。

res.send(200)
于 2014-09-05T01:21:43.760 回答
1

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

于 2014-09-05T04:58:17.300 回答