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"}]
现在我无法弄清楚是什么问题以及我在这里犯了什么错误。
谢谢
你正在尝试使用一个string ( data.result[0].outtime
,也可能是data.result[0].intime
),就好像它是一个Date对象: ((outtime.getTime() - intime.getTime()) / fraction)
getTime()
不是一个函数可用于string(因此undefined
),所以这就是为什么你看到这个特定的错误。