如何区分expressjs中的两个POST调用?

时间:2014-08-11 19:28:17

标签: node.js express

我目前在一个invent.ejs文件中有两种不同的形式:

一个用于简单描述:

///inven.ejs
  <form method="POST" value="inven">
     <div id="some-form" style="display: none;">
       <table>
         <tr>
           <td><label for="item">Item</label></td>
           <td><input type="text" name="item" required/></td>
         </tr>
         <tr>
           <td><label for="text-box-value">Value</label></td>
         </tr>
         <tr>
           <td><label for="comments">Comments</label></td>
           <td><textarea rows="4" cols="50" required></textarea></td>
         </tr>
         <tr>
           <td><input type="submit" /></td>
         </tr>          
       </table>
     </div>
   </form>

和另一个文件上传:

///inven.ejs
   <div id="fileUp">
     <form id="fileUpload" name="fileUpload" enctype="multipart/form-data" method="post">
       <fieldset>
          <input type="file"id="fileSelect">
          <input type="submit" name="upload" value="upload">
       </fieldset>
     </form>
   </div>

在express中,如何区分list.js文件中的这两个帖子?

router.post('/list', function(req,res){
   // ???
});

我需要两个路由器吗?我完全不正确吗? 谢谢!

修改 包含图片,如果有帮助吗?

Image of what I'm attempting to do here

1 个答案:

答案 0 :(得分:2)

将表单发布到不同的地址是有意义的。

<form id="fileUpload" action="file_upload" ... > 然后,如果在http://server/my_form找到该表单,则会发布到http://server/file_upload

在你的Node.js路由器中,你需要抓住它并完成。


如果您仍希望将两个表单发送到同一地址,则可以使用隐藏字段。

示例:<input type="hidden" name="form_type" value="file_up_form">。然后在Node.js中检查参数form_type并检查其值。