【问题标题】:Getting form data in nodeJS with Jade使用 Jade 在 nodeJS 中获取表单数据
【发布时间】:2016-06-12 13:14:18
【问题描述】:

我正在尝试使用 Jade 和 Express 在 NodeJS 中创建我的第一个网站。现在我想在一个名为 Lipinsky 的页面上制作一个表单,但我不知道如何将输入存储到一个变量中。 我尝试了 console.logging res 和 req ,它们是没有任何主体的大对象,所以 req.body 是未定义的。 我用于渲染和获取表单的 app.js 如下所示:

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中的变量中。

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

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

    【讨论】:

    • ROFL 那个 lipinsky()
    • 感谢您的澄清,我现在知道我是多么的无能。我应该再好好看看教程哈哈。但是,当我尝试登录 req.body 时,它仍然返回未定义。调用 lipinsky 就好像它是一个函数一样来自clock.co.uk/blog/a-simple-website-in-node-js-2016-edition,我不知道他们为什么会这样做。
    • 确保您确实发布了任何内容。我使用邮递员,一个 chrome 扩展来测试服务器。顺便说一句,我在页面上找不到lipinsky。@bdbdbd
    猜你喜欢
    • 2017-10-06
    • 2014-08-12
    • 2018-12-29
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多