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

时间:2017-01-29 07:41:08

标签: javascript node.js express ejs

我想要做的是从表单中获取数据 但是表单是动态生成的,因此我不知道会有多少行。 所以对于我的形式(使用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>

这里我从1改为10或者数据的长度是多少。 所以,例子 表格名称来自出勤1,出勤2,出勤3,.....

在服务器端我正在使用

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);
    }

});

这里我想从每个循环的表单中获取当前日期的值。 所以,第一个循环,它得到req.body.attendance1 第二个得到req.body.attendance2, 等等 但是当我使用变量出勤而不是出勤1和出勤2时 直接,然后我得到了未定义的结果。

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

为什么会这样? 为什么我不能使用出勤变量来获取来自出勤1,出勤2,......的所有值。

1 个答案:

答案 0 :(得分:4)

获取daysPresent值的行:

daysPresent = req.body.attendance; 

应该是:

daysPresent = req.body[attendance]