2016-10-29 1 views
0

Hallo und danke im voraus zu schicken,Wie eine Warnung aus node.js Express-Funktion

ich die folgende Funktion in meinem main.js bin mit Per E-Mail Kontakt mit uns zu senden. Nach dem Erfolg leite ich einfach zurück nach Hause.

Wie sende ich dem Client eine einfache Warnung ("Email Sent: Success"); zum Client-Browser.

von 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); 
}); 

}); 

von meiner Seite index.html Taste zu senden ..

<!-- 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 --> 

Wenn Code es nicht zulässt, gibt es Module, die ich für diese installieren kann?

Neu bei Knoten und js. Danke für die Hilfe.

+1

Sie können nicht. Knoten läuft serverseitig. Sie können jedoch eine Antwort senden, für die der Client-Code mit einer Warnung antwortet. –

+0

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

+0

@adeneo Das ist eine wirklich schlechte Empfehlung. Verknüpfen Sie die serverseitigen Komponenten nicht unnötig mit der Clientseite. – Brad

Antwort

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

Am vorderen Ende, erhalten Sie Antwort promise(JavaScript,jQuery,AngularJs..Whatever) in und überprüfen für success Eigenschaft für Ihre weitere businedd Logik.

+0

Ich spielte/probierte das, aber ich konnte es nicht richtig zur Arbeit bringen. Meine Index.html Seite verwendet eine Standardschaltfläche. Ich werde meine Frage aktualisieren, wenn das hilft. – AhabLives

+0

nicht HTML wird nicht helfen. Aktualisieren Sie Q mit JS senden 'sendMail' Anfrage und relativen Teil –

+0

@RIYAJKHAN Keine Notwendigkeit für die JSON-Nutzlast. Ein einfacher '204 No Content' genügt. Der Client sollte den Antwortstatuscode überprüfen, und das Versprechen wird entsprechend aufgelöst/abgelehnt. – Brad