undefined不是ejs中的函数

当我试图潜入js世界时,它是我第一次遇到和学习ejs的尝试。

现在我的问题是我得到以下错误:

for(i in data.result){ 22| var intime = data.result[i].intime; undefined is not a function

和相关的代码如下所示:

  <table > <thead> <th>Project Name</th><th>Date</th><th>Login</th><th>Logout</th><th>Time Spend</th> </thead> <% var fraction = 1000 * 60 * 60; for(i in data.result){ var intime = data.result[i].intime; var outtime = data.result[i].outtime; var difftime = ((outtime.getTime() - intime.getTime()) / fraction); var date = data.result[i].date; %> <tr> <td>Ninja</td> <td><%=date%></td> <td><%=intime%></td> <td><%=outtime%></td> <td><%=difftime%></td> </tr> <% } %> </table> 

我的尝试:

作为例外情况说有些东西是不确定的,我正试图调用它的function,所以引发exception。 所以要validation这一点我omiited整个表标记,只添加以下代码;

  <%= JSON.stringify(data.result[0].outtime)%> <br> <%= JSON.stringify(data.result[1])%> <br> <%= JSON.stringify(data.result)%> 

导致了

 "14:44:45" {"empId":3,"projectId":1,"intime":"09:44:45","outtime":"14:44:45","date":"2014-08-05T18:30:00.000Z"} [{"empId":3,"projectId":1,"intime":"09:44:45","outtime":"14:44:45","date":"2014-08-04T18:30:00.000Z"},{"empId":3,"projectId":1,"intime":"09:44:45","outtime":"14:44:45","date":"2014-08-05T18:30:00.000Z"}] 

现在我无法弄清楚是什么问题以及我在这里犯了什么错误。

谢谢

你正在尝试使用一个stringdata.result[0].outtime ,也可能是data.result[0].intime ),就好像它是一个Date对象: ((outtime.getTime() - intime.getTime()) / fraction)

getTime()不是一个函数可用于string(因此undefined ),所以这就是为什么你看到这个特定的错误。