2016-11-02 14 views
0

Ich versuche, einen HTML-Formularelemente Wert in Node.js-Datei über GET-Anfrage zu übergeben.Übergeben von HTML-Werten mit GET-Anforderung

Wie mache ich das?

Ich habe ähnliche Beispiele mit POST-Anfragen gefunden, aber ich muss GET-Anfrage hier alleine verwenden. Der HTML-Formularwert ist die Suchzeichenfolge, mit der ich in der Datenbank suchen werde.

app.get('/search', function (req, res){ 
 
    res.sendfile('./views/search.html'); 
 
    console.log(req.body.denomination); 
 
    user.find({denomination: req.params.denomination}, function (err, docs) { 
 
     res.render('index', {users: docs}); 
 
    }); 
 
});
<form action="/search" method="get"> 
 
    <label for="denomination">Denomination</label><br> 
 
    <input type="text" name="denomination"><br> 
 
    <button type="button" class="btn btn-primary btn-lg" onclick="like(this)">submit</button> 
 
</form>

Antwort

0

Um Werte nach einer GET-Anfrage erhalten Sie req.query.<your_html_field> nutzen können.

Überprüfen Sie auch, ob Sie app.use(bodyParser.urlencoded({ extended: true })); eingestellt haben, damit Sie die querystring suchen können. Sie finden weitere Informationen here.

Ich bin nicht sicher über Ihre res.sendfile(...) am Anfang Ihrer Methode, ob es eine Antwort bereits sendet oder nicht, aber ich nehme an, es funktioniert.

machen Sie einfach diese zwei kleine Änderungen in der Route:

app.get('/search', function (req, res){ 
    res.sendfile('./views/search.html'); 

    // Changed here from `body` to `query` 
    console.log(req.query.denomination); 

    // Changed here from `params` to `query` 
    user.find({denomination: req.query.denomination}, function (err, docs){ 
     res.render('index', {users: docs}); 
    }); 
}); 

Hoffe, es hilft.

+0

Dank tom, löste es das Problem. –

Verwandte Themen