javascript - 在expressjs中可以做两个post路由吗?

标签 javascript node.js express

我创建了一个 Expressjs 应用程序。它包含 public、views、routes 文件夹和 app.js 文件。

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

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

还有 Jade 码,

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

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

最佳答案

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

如果您需要表单 POST 到同一 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')

关于javascript - 在expressjs中可以做两个post路由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278881/

相关文章:

javascript - 帮助使用户脚本在 Chrome 中工作

javascript - 检查二维数组中的项目是否形成矩形

node.js - 如何离线安装node+vue web程序

javascript - 通过Heroku获取客户端IP地址

javascript - Breeze 使用 Angular $http 拦截器

node.js - 一台机器上的多个 Node.js 实例和 npm

node.js - Websocket 431 错误 : Unexpected server response

node.js - Express - multer fileFilter 错误处理

angular - 部署的应用程序引擎未对我的内容进行 gzip 压缩

javascript - 带过滤器的 DHTMLX Scheduler 自定义年份 View