如何在req.body中使用变量-Node.js

far*_*raz 0 javascript ejs node.js express

我想做的是从表单获取数据,但是表单是动态生成的,所以我不知道会有多少行。所以对于我拥有的表单(使用ejs)

<form action="/attendance-data" method="post">
     <% var i=0 %>
<% rows.forEach(function(item){ %>
       <% i=i+1 %>
     <tr>
          <td><%= i+"." %></td>
        <td id="uan<%= i %>"> <%= item.uan  %> </td>
        <td><%= item.name %></td>
        <td><%= item.designation %></td>
        <td><input type="text" name="attendance<%= i %>" ></td>
     </tr>
    <% });   %>
     <input type="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

在这里,我从1更改为10或任何数据长度。因此,示例表单名称来自Attenance1,Attenance2,Attenance3,.....

在服务器端,我正在使用

app.post('/attendance-data',function(req,res){
    var  daysPresent;
    var attendance;
    for(var i=1;i<=numberOfEmployees;i++){

        attendance = "attendance"+i;
        daysPresent = req.body.attendance;
        console.log('attendance is :',attendance);
        console.log('days present is :',daysPresent);
    }

});
Run Code Online (Sandbox Code Playgroud)

在这里,我想从表单中获取每个循环的当前天数。因此,第一个循环获取req.body.attendance1,第二个获取req.body.attendance2,依此类推,但是当我直接使用变量Attenance而不是Attenance1和Attenance2时,结果就变得不确定。

当我直接使用req.body.attendance1或req.body.attendance2或类似的东西时,我只会得到结果。

为什么会这样呢?为什么我不能使用出勤变量,该变量从Attenance1,Attenance2 ......获取所有值

小智 6

该行获取days的值

daysPresent = req.body.attendance; 
Run Code Online (Sandbox Code Playgroud)

应该:

daysPresent = req.body[attendance]
Run Code Online (Sandbox Code Playgroud)