1

我创建了一个 Expressjs 应用程序。它包含公共、视图、路由文件夹和 app.js 文件。

我在 app.js 中有一个用于“/”路径的后路由器,

app.post('/', store.home_post_handler);

和玉码,

#display
    #login        
        form(method='post')
            | Enter your name if you want to be a ninja
            div
                input(type='text', name='username')
                input(type='submit', value='Log In')

我的问题是,是否可以在一个页面中有两个发布方法?

4

1 回答 1

2

action如果您希望客户端页面上有两个执行不同操作的表单,区分表单的最简单方法是通过更改表单元素的属性将它们 POST 到不同的 URL 。

如果您需要将表单发布到相同的 URL,您应该使用 @hexacyanide 的解决方案。

// app.js
app.get('/form', function(req, res){
  res.render('formTemplate');
});

app.post('/form1', function(req, res){
  console.log(req.body.foo);
});

app.post('/form2', function(req, res){
  console.log(req.body.bar);
});

// formTemplate.jade
!!!
  body
    form(action='form1', method='post')
      label(for='foo') Foo:
      input(type='text', name='foo', id='foo')
      input(type='submit', value='Submit Foo')
    form(action='form2', method='post')
      label(for='bar') Bar:
      input(type='text', name='bar', id='bar')
      input(type='submit', value='Submit Bar')
于 2013-10-09T22:36:22.390 回答