将jade输入更新为hapi.js

时间:2014-10-29 04:59:03

标签: node.js pug hapijs

我有一个jade模板,我有一个create user部分,用于将用户添加到orchestrate.io数据库。下面我有一个删除和更新链接的所有用户的列表。当密钥到达服务器时,通过URL将密钥作为res.params.id传递给删除工作正常。当我使用密钥更新时,它没有从输入字段中看到新值,因此我没有获得在服务器端使用的有效负载值。我该如何更新此字段?这是我的代码: 服务器端 -

server.route({
   method: 'GET', 
   path: '/update/{id}',
   handler: function(req, reply){
       db.put('users', req.params.id, {
        "name": 'name',
        "password": 'password',
        "email": 'email'
      })
      .then(function (result) {
          reply.redirect('/');
      })
      .fail(function (err) {
          reply('no update');
      });
   }
});

玉模板 -

doctype html
html
  head
    title Last October Weekly Challenge
  body
    div.container
      p This is the main user page. You can create, update, delete and view users.
      form(action='/',method='POST')
        label(for='name') Name
          input(id='name',type='text',value='',placeholder='Enter Name',name='name')
        label(for='password') Password
          input(id='password',type='password',value='',placeholder='Enter Password',name='password')
        label(for='email') Email
          input(id='email',type='email',value='',placeholder='Enter Email',name='email')
        input(id='submit',type='submit',value='Create User',name='submit')
      p Here are the current users:
      table
        each item in items
          tr
            td
              input(type='text' name='update-name' value= item.value.name)
            td
              input(type='text' name='update-password' value= item.value.password)
            td
              input(type='email' name='update-email' value= item.value.email)
            td
              a(href="/delete/" + item.path.key) Delete
            td
              a(href="/update/" + item.path.key) Update

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我看到了一些可能导致问题的事情。 1)你的server.route方法是“GET”但它应该是“POST”来处理/匹配表单的方法属性;并且,2)您没有将ID作为表单中的隐藏字段(或作为操作URL的一部分,例如form action =“/ update / 12345”method =“POST”...)。