2016-06-12 15 views
-1

Ich versuche meine erste Website in NodeJS mit Jade und Express zu machen. Jetzt möchte ich ein Formular auf einer Seite namens Lipinsky machen, aber ich kann nicht herausfinden, wie ich die Eingabe in eine Variable speichern kann. Ich habe versucht, console.logging res und req und sie sind große Objekte ohne Körper, also req.body ist undefiniert. Meine app.js für das Rendering und die Form immer sieht wie folgt aus:Formulardaten in nodeJS mit Jade erhalten

app.get('/lipinsky', function (req, res, next) { 
    try { 
    let html = lipinsky({ title: 'Lipinsky RO5' }) 
    res.send(html) 
    } catch (e) { 
    next(e) 
    } 
}) 

app.post('/lipinsky', function (req, res) { 
    let html = lipinsky({ title: 'Lipinsky RO5' }) 
    res.send(html); 
}); 

Und mein lipinsky.jade ist:

extend default 

block content 
    h3. 
    Lipinsky rule of five calculator 

    p. 
    Calculate Lipinsky RO5 for molecules with a known CAS registry number. 
    div 
    form(action='/lipinsky',method='post') 
    div(data-role='fieldcontain') 
     fieldset(data-role='controlgroup') 
     label(for='name') Molecule name 
      input(id='name',type='text',value='',name='name') 

Ich weiß also nicht, ob ich es tue Recht und wie man die eingegebenen Formulardaten in eine Variable in app.js bekommt

Antwort

2

Was zur Hölle ist lipinsky()?
1. Wie auch immer, Sie können res.render({ title: "foo" }) verwenden, um die Vorlage zu rendern und zurückzugeben.
2. Und Sie haben title in Ihrer Jade nicht verwendet.

doctype html 
html(lang="en") 
    body 
     h3= title 

3. Ich denke, Sie haben keine Middleware hinzugefügt. Sie sollten also nicht next(e) anrufen.

+0

ROFL, dass lipinsky() –

+0

Vielen Dank für die Klärung, ich sehe jetzt, wie ahnungslos ich war. Ich sollte mir die Tutorials nochmal genau ansehen, haha. Wenn ich jedoch versuche '' '' req.body''' zu protokollieren, wird immer noch undefined zurückgegeben. Der Aufruf Lipinsky, als ob es eine Funktion ist kommt von http://www.clock.co.uk/blog/a-simple-website-in-node-js--2016-edition und ich habe keine Ahnung, warum sie tun würden Das. – bdbdbd

+0

Stellen Sie sicher, dass Sie wirklich etwas gepostet haben. Ich benutze Postman, eine Chrome-Erweiterung, um den Server zu testen. BTW, Ich kann 'Lipinsky' auf der Seite nicht finden. @ Bdbdbd – Zen