2016-11-23 75 views
0

Im基於從源文件夾讀取的文件在ejs中構建表單。每個文件都會在表單中生成多個字段。用戶可以爲每個文件添加元數據,並提交整個表單數據應該保存在mongodb中。那麼如何在字段中定義名稱,以便我可以像在此問題中那樣直接將整個req.body直接傳遞給MongoDB:Post Multiple JSON Objects Simultaneously with Express and Postman。 我試圖與參數化的名稱,如名稱=「size_ <%=數據[I] .invNr%>但我必須做的,爲了要回各個對象解析了很多。如何從insertmany動態創建表單字段返回數據

<form action = "/" method = "POST"> 
    <div class="form-group"> 
     <% for (var i = 0; i < length; i++) { %> 
     <div class="row"> 
     <div class="col-md-4"><a href="<%= data[i].fullPath %>"><img src="<%= data[i].fullPath %>" width="200" class="media-object"></a></div> 

     <div class="col-md-8"><i class="fa fa-certificate"></i> 

      <span>Original: <%= data[i].origFile %></span> 
      <br> 
      <span name="katnr">KatalogNr: <%= data[i].katNr %></span> 
      <br> 
      <span name="invnr">InventarNr: <%= data[i].invNr %></span> 
      <br> 
      <span>FullP: <%= data[i].fullPath %></span> 
      <br> 
      <span>Test: <%= data[i].test %></span> 
      <br> 
      <input type = "hidden" id="invnr_<%= data[i].invNr %>" name ="invnr" value="<%= data[i].invNr %>"> 
      <input type = "hidden" id="fullpath_<%= data[i].invNr %>" name ="fullpath" value="<%= data[i].fullPath %>"> 
      <span>Comment: <%= data[i].comment %></span> 
      <br> 
      <span>Color</span> 
      <input type = "text" id="color_<%= data[i].invNr %>" name ="color" value="Viggo<%= data[i].invNr %>"> 
      <br> 
      <span> Size</span> 
      <input type = "text" id="size_<%= data[i].invNr %>" name = "size" value="Otto <%= data[i].invNr %>" > 
     </div> 
     </div> 
     <hr> 
     <% } %> 
     <input type = "submit" value = "Submit"> 
    </div> 
    </form> 

謝謝!

回答

0

HTML

<form action = "/" method = "POST"> 
    <div class="form-group"> 
    <% for (var i = 0; i < length; i++) { %> 
    <div class="row"> 
    <div class="col-md-4"><a href="<%= data[i].fullPath %>"><img src="<%= data[i].fullPath %>" width="200" class="media-object"></a></div> 

    <div class="col-md-8"><i class="fa fa-certificate"></i> 

     <span>Original: <%= data[i].origFile %></span> 
     <br> 
     <span name="katnr">KatalogNr: <%= data[i].katNr %></span> 
     <br> 
     <span name="invnr">InventarNr: <%= data[i].invNr %></span> 
     <br> 
     <span>FullP: <%= data[i].fullPath %></span> 
     <br> 
     <span>Test: <%= data[i].test %></span> 
     <br> 
     <input type = "hidden" id="invnr_<%= data[i].invNr %>" name ="invnr[]" value="<%= data[i].invNr %>"> 
     <input type = "hidden" id="fullpath_<%= data[i].invNr %>" name ="fullpath[]" value="<%= data[i].fullPath %>"> 
     <span>Comment: <%= data[i].comment %></span> 
     <br> 
     <span>Color</span> 
     <input type = "text" id="color_<%= data[i].invNr %>" name ="color[]" value="Viggo<%= data[i].invNr %>"> 
     <br> 
     <span> Size</span> 
     <input type = "text" id="size_<%= data[i].invNr %>" name = "size[]" value="Otto <%= data[i].invNr %>" > 
    </div> 
    </div> 
    <hr> 
    <% } %> 
    <input type = "submit" value = "Submit"> 
</div> 

控制器

var main = {} 
for(var i = 0;i<req.body.invnr.length;i++){ 
var obj ={ 
invnr:req.body.invnr[i], 
fullpath:req.body.fullpath[i], 
fullpath:req.body.color[i], 
fullpath:req.body.size[i] 
} 
main.push(obj); 

} 
console.log(JSON.stringify(main)) 
+0

謝謝!那樣做了。我錯過的小細節是設置app.use(bodyParser.urlencoded({extended:true})); – user2804136