2017-02-21 5 views
0

Ich benutze Node + Express. Ich habe derzeit eine Texteingabe in einem Formular, wo Sie beim Absenden nach Benutzern in einer Mongo-Datenbank mit dem angegebenen Suchbegriff suchen. Wenn ich jedoch eine Suche durchführe, ändert sich die URL zu "localhost: 8080/searchGlobalUsers", wenn sie "localhost: 8080/talk" lauten soll. Hier mein Beitrag Route ist:POST Formular Route hat POST Route in der Adressleiste

app.post('/searchGlobalUsers', function(req, res){ 
    var regex = new RegExp(req.body.globalUserSearch, 'i'); 
    console.log("GLOBAL_USER_SEARCH: " + req.body.globalUserSearch); 
    User.find({username: regex}, function(err, globalUserSearchQuery){ 
     res.render("talk", {globalUserSearchQuery : globalUserSearchQuery}); 
    }); 
}); 

Und hier ist meine Texteingabe + Form

<form action="/searchGlobalUsers" method="POST" > 
     <div class="row"> 
       <input type="text" name="globalUserSearch" class="u-full-width" placeholder="Search" id="add-friend-search-input"> 
     </div> 
     <div class="row"> 
       <button class="button-green-large" class="u-full-width" id="add-friend-search-submit">Search</button> 
     </div> 
    </form> 
+0

Sie Umleiten Sie Ihre Seite nach/searchGlobalUsers, warum Ihre URL wie localhost: 8080/searchGlobalUsers ist und in searchGlobalUsers route Sie die Talk View rendern –

Antwort

0

Funktion machen ist die Verwendung im Hinblick auf den Client liefern nur diesen Code verwenden

app.post('/searchGlobalUsers', function(req, res){ 
     var regex = new RegExp(req.body.globalUserSearch, 'i'); 
     console.log("GLOBAL_USER_SEARCH: " + req.body.globalUserSearch); 
     User.find({username: regex}, function(err, globalUserSearchQuery){ 
      req.flash('info', globalUserSearchQuery);    
      return res.redirect("/talk"); 
     }); 
    }); 

    app.get('/talk', function(req, res){ 
    res.render("talk", {"globalUserSearchQuery" : req.flash('info')}); 
    }) 
Verwandte Themen