2017-11-14 11 views
0

レスポンスだけでなく、nodemailerで電子メールを送信した後にアラートを取得しようとしています。ここで私はこれまで持っているものです。angularjsとnodemailerでブラウザのアラートメッセージを取得する方法

app.js(モジュールと):

transporter.sendMail(mailOptions, (error) => { 
if (error) { 
    res.sendStatus(500) 
} else { 
    res.sendStatus(200) 
} 
transporter.close(); 
}); 

}); 

$http.post({ 
    url: '/contactUs', 
    data: '', 
}).then(
    function successCallback(response) { 
    $scope.alert("Message Sent!!") 
    }, 
    function errorCallback(response) {} 
) 
+0

どのパーツが機能しているのか、または機能していないのかはっきりしていないのは、スコープで定義した機能です。通常の警告を使用する場合は、$ scopeを挿入し$ window.alert( "message sent !!")を使用する$ windowを挿入します。ネットワークタブをチェックして、要求が送信され、その要求に対して期待される応答があるかどうかを確認します。角度コードの成功とエラーのコールバックに 'debugger'という単語を入れて、コードが実行されていることを確認するためにデバッグパネルを開いたままにしておきます。 – shaunhusain

+0

はい、これはすべて機能しています。おそらく「OK」であることが分かっているjsonステータスコード(200)に変更された画面ではなく、メッセージが送信されたことを確認するユーザーコンフォーマーアラートメッセージが表示されます。お返事ありがとうございます。 –

+0

$ http.post呼び出しをどのように起動していますか? XHRリクエストをバックグラウンドで行うのではなく、リンクが呼び出されている場所が間違っていて、レスポンスヘッダも問題になるかもしれませんが、どのようにトリガされているかのコンテキストがフロントエンドのデバッグに役立ちます。 – shaunhusain

答えて

0

あなただけalert("Message Sent")代わりの$scope.alert("Message Sent")を呼び出す必要があります。

角化したい場合は、$windowを注入して$window.alert("Message Sent")と呼ぶと、単体テストであれば簡単になります。

+0

私は前の2つを試しましたが、電子メールが送信された後、json sendStatus(200)コードに変更されました。これは大丈夫です。それは文字通りok iで空白の白い画面に行きますnは左上隅です。ああ、応援してくれてありがとう! –

+0

あなたのアドバイスが正しいと分かった後、コントローラに他のコードが間違っていました。ありがとう! –

関連する問題