【问题标题】:Sending mail with NodeJS and Angular使用 NodeJS 和 Angular 发送邮件
【发布时间】:2016-07-17 21:21:46
【问题描述】:

所以我创建了一个表单来发送邮件。是这样的:

<div class="col-xs-6 col-md-6 form-group">
    <input class=" form-control " requried style="border-radius:20px" ng-model="name" name="name" type="text"  />
</div>
<div class="col-xs-6 col-md-6 form-group">
    <input class="form-control border-radius" required style="border-radius:20px" id="email" name="email" type="email" ng-model="email"  />
</div>
</div>
<textarea class="form-control" id="message" style="border-radius:20px" name="message"  rows="5" ng-model="message"></textarea>
<br />
<div class="row">
    <div  class="col-xs-12 col-md-12 form-group">
    <button ng-click="send(ngCart.getCart().items,message,email,name)" id="send_email" class="btn btn-primary pull-right btn-color" type="submit" style="border-radius:20px">send</button>
    </div>
</div>

ng-click 发送函数在控制器中如下所示:

  $scope.send = function (items, message, email, name) {

            if (email == undefined) {
                alert("Error!")
            }
            else
            {
                var data = email; 
                var config = {
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
                    }
                }

                $http.post('/send', data, config)
                    .success(function (data, status, headers, config) {
                        $scope.PostDataResponse = data;
                        console.log("Is working", data, status, headers, config);
                    })
                    .error(function (data, status, header, config) {
                        $scope.ResponseDetails = "Data: " + data +
                            "<hr />status: " + status +
                            "<hr />headers: " + header +
                            "<hr />config: " + config;
                    });
            }


        };
    }])

在 NodeJS 中我有以下内容:

app.post('/send', function(req,res){
  console.log("Api Req: ",req);
  console.log("Api Res: ",res);
    var mailOptions={
        from : "from@mail.com",
        to : "test@mail.com",
        subject : "Your Subject",
        text : "Your Text",
        html : "HTML GENERATED"
    }
    console.log(mailOptions);
    smtpTransport.sendMail(mailOptions, function(error, response){
        if(error){
            console.log(error);
            res.end("error");
        }else{
            console.log(response.response.toString());
            res.end("sent");
        }
    });
});

现在问题出在 NodeJS 我看不到我想在 req 或 res 的 angular 函数 (ngCart.getCart().items,message,email,name) 中发送的数据,这是为什么呢?

编辑: 访问 localhost/send 时,它确实发送带有固定数据的邮件,但它无法从发送函数中获取数据,我就是不知道为什么。

【问题讨论】:

    标签: javascript angularjs node.js


    【解决方案1】:

    您的请求负载位于req.body

    【讨论】:

    • 好的,我想通了,它返回的正文知道但是它是这种格式:Body { '{"formdata":{"email":"test@mail.com", "message":"asdasd"},"cart":[{"_id":"2","_name":"asdadasd","_price":9.99,"_quantity":1}]}': '' }好像是字符串,为什么不解析成json?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多