2016-10-29 5 views
0

こんにちは、ありがとう、node.jsからのアラートの送信方法express function

私は私のmain.jsに以下の機能を使って私たちに電子メールを送ります。成功すると、私は単に家に戻ってリダイレクトしています。

クライアントに簡易アラートを送信するにはどうすればよいですか(「Email Sent:Success」);クライアントブラウザに送信します。送信するために私のindex.htmlページボタンからmain.js

app.use(bodyParser.json()); 

app.get('/sendMail', function(req, res){ 

res.sendFile("index.html"); // html file is within public directory 
}); 


    app.post('/sendMail',function(req,res){ 
    var username = req.body.name; 
    var subject = req.body.subject; 
    var fromEmail = req.body.email; 
    var toEmail = '[email protected]'; 
    var bodyMessage = req.body.message; 

    // var htmlData = 'Hello: ' + toEmail; 

var mg = new Mailgun('key-0000000000000000000'); 
mg.sendText(fromEmail, toEmail, 
    'CS: '+subject, 
    bodyMessage, 
    fromEmail, {}, 
    function(err) { 
    if (err)res.send('NOT SENT: STRUGGLE EVERYDAY'); 
    else res.redirect('/'); 
    // res.json({success: true}); 
    // else  res.send('Success: EMAIL SENT From: '+fromEmail+' - To: '+toEmail); 
}); 

}); 

から

..

<!-- START CONTACT FORM --> 

      <form method="POST" action="sendMail" accept-charset="UTF-8" class="contact-form" id="jvalidate" novalidate="novalidate"> 

       <div class="row"> 
        <div class="col-sm-12 col-md-4"> 
         <div class="field-holder"> 
          <input class="form-control input-lg field" placeholder="John Snow" name="name" type="text"> 
         </div> 
        </div> 
        <div class="col-sm-12 col-md-4"> 
         <div class="field-holder"> 
          <input class="form-control input-lg field" placeholder="[email protected]" name="email" type="email"> 
         </div> 
        </div> 
        <div class="col-sm-12 col-md-4"> 
         <div class="field-holder"> 
          <input class="form-control input-lg field" placeholder="Subject" name="subject" type="text"> 
         </div> 
        </div> 
        <div class="col-md-12 col-xs-12"> 
         <div class="field-holder"> 
          <textarea class="form-control" placeholder="Some text" name="message" cols="50" rows="10"></textarea> 
         </div> 
        </div> 

        <div class="form-group"> 
         <div class="col-md-12"> 
          <div class="alert alert-success" role="alert" style="display: none;"> 
           Message has been successfully sent. 
          </div> 
          <div class="alert alert-danger" role="alert" style="display: none;"> 
           <div class="alert-text">Server error</div> 
          </div> 
         </div> 
        </div> 
       </div> 
       <div class="row"> 
        <div class="col-md-12"> 
         <button class="btn btn-primary btn-contact" type="submit" value="SEND MESSAGE">SEND MESSAGE</button> 
        </div> 
       </div> 
      </form> 
      <!-- END CONTACT FORM --> 

コードがそれを許可しない場合、私はこれをインストールすることができます任意のモジュールがありますか?

ノードとjsの新機能です。助けてくれてありがとう。フロントエンドで

+1

できません。ノードはサーバー側を実行します。ただし、クライアントコードがアラートで応答する応答を送信することはできます。 –

+0

'res.send( '')' < - tada – adeneo

+0

@adeneoこれは本当に悪い勧告です。クライアント側に不必要にサーバー側のコンポーネントを結び付けないでください。 – Brad

答えて

1
res.json({success: true}); 

、あなたはpromise(JavaScript,jQuery,AngularJs..Whatever)を使用して応答を取得し、さらにbusineddロジック用successプロパティを確認してください。

+0

私はそれを気遣っている/しようとしていたが、私はそれをうまく動作させることができなかった。私のindex.htmlページは標準のボタンを使用しています。私はそれが助けば私の質問を更新します。 – AhabLives

+0

htmlは役に立ちません.J send sendで送信されたQで、Qと更新してください。 –

+0

@RIYAJKHAN JSONペイロードは不要です。単純な '204 No Content'が行います。クライアントは応答ステータスコードをチェックする必要があり、約束はそれに応じて解決/拒否されます。 – Brad

関連する問題