0
私は連絡先フォームを作成しようとしていますが、サーバー側はかなりうまく動作しています。しかし、AngularをHTMLフォームに接続してExpressで送信する方法はわかりません。どなたでも助けていただければ幸いです。Express nodemailerを角で接続してください
マイエクスプレス
router.get('/sendQuote', function(req, res) {
var data = req.query;
var mailOptions = {
from: '[email protected]', // sender address
name: data.contactName,
email: data.contactEmail,
to: data.email, // list of receivers
subject: "Request for a Quote from " + data.contactName, // Subject line
text: data.contactMsg, // plaintext body
html: '<p> email: ' + data.contactEmail +
'</p><p> phone: ' + data.contactPhone + '</p><br>'
+data.contactMsg // html body
};
console.log(mailOptions)
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
})。
だから、私のhtml:
<form id="contact" class="contact-form" ng-submit="sendMail()" novalidate>
<div class="message"></div>
<div class="col-md-5 col-sm-5 col-xs-12 animated hiding" data-animation="slideInLeft">
<div class="form-group">
<input type="text" name="name" class="nameform form-control input-lg" placeholder="name" ng-model="contactName" required>
</div>
<div class="form-group">
<input type="email" name="email" class="emailform form-control input-lg" placeholder="email" ng-model="message.contactEmail" required>
</div>
<div class="form-group">
<input type="text" name="phone" class="phoneform form-control input-lg" placeholder="phone" ng-model="message.contactPhone">
</div>
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="form-group">
<textarea name="message" class="messageform form-control input-lg" placeholder="custom text" ng-model="message.contactMsg" required></textarea>
</div>
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<input type="submit" class="btn btn-custom up form-button" value="Send Message">
そして、主な問題は、HTMLおよびExpressで角度接着する方法を、ここにあります。私は電子メールを送ることができますが、名前、電子メールなどのフィールドでは定義されていません。 :
app.controller('MainCtrl', ['$scope', '$interval', '$http', '$location', '$anchorScroll',
function($scope, $interval, $http, $location, $anchorScroll) {
$scope.sendMail = function() {
$scope.message = {};
$http.get('/send/sendQuote', $scope.message).
success(function(data, status, headers, config) {
// $scope.message = data.message;
console.log($scope.message)
});
}
}]);
が答えてくれてありがとう:
HTMLは1 ngのモデルは、メッセージオブジェクトに結合していませんでした!私はあなたが提案した改善を試しましたが、まだ私は "名前:未定義、電子メール:未定義...など"を取得します。あなたはなにか考えはありますか? – planacte