2016-06-12 24 views
-1

我想用Jade和Express在NodeJS中创建我的第一个网站。现在我想在一个名为Lipinsky的页面上创建表单,但我无法弄清楚如何将输入存储到变量中。 我试过console.logging res和req,它们是没有任何主体的大对象,所以req.body是未定义的。 我的渲​​染和获取形式app.js看起来是这样的:使用Jade在nodeJS中获取表单数据

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

而且我lipinsky.jade是:

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') 

所以我不知道如果我这样做是正确和如何将输入的表单数据转换为app.js中的变量

回答

2

这到底是什么lipinsky()
1.无论如何,您可以使用res.render({ title: "foo" })来呈现模板并将其返回。
2.你还没有在你的玉石中使用title

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

3.我想你还没有添加任何中间件。所以,你不应该打电话next(e)

app.get('/lipinsky', function (req, res) { 
    res.render("./views/lipinsky", {title: "foo"}); 
}) 
+0

ROFL lipinsky() –

+0

谢谢你澄清,我现在看到我是多么的无知。我应该再次看看教程哈哈。 但是,当我尝试登录'''req.body''时,它仍然返回undefined。 调用lipinsky,好像它是一个函数来自http://www.clock.co.uk/blog/a-simple-website-in-node-js-2016-edition,我不知道他们为什么会这样做那。 – bdbdbd

+0

确保你确实发布了任何内容。我使用邮递员,一个铬扩展来测试服务器。顺便说一句,我无法在页面上找到'lipinsky'。@ bdbdbd – Zen