微信小程序云端函数class的方法需注意形式
我随便写了下面的类
class MyDate{ constructor(dateStr) { var arr = dateStr.split(' '); var dateArr = arr[0].split('-'); this.year = parseInt(dateArr[0]); this.month = parseInt(dateArr[1]); this.day = parseInt(dateArr[2]); if(arr.length>1){ var tarr = arr[1].split(':'); this.hour = parseInt(tarr[0]); this.minute = parseInt(tarr[1]); this.sec = 0; if(tarr.length>2){ this.sec = parseInt(tarr[2]); } } } getDateTime=function() { return new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.sec); } getDate=function() { return new Date(this.year,this.month-1,this.day); } getDateNumber=function() { return Date.parse(this.getDate()); } }
本地调试的时候没有问题,但放在正式环境就报错:
调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID
云端测试报:{"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"Unexpected token ="}
其实就是没有发布好,node的v.8.9估计是认为上面的js语法里有错误。而我本地的node是10.15版。解决也很简单,方法的定义改为以下的样子就好了:
//.... getDateTime() { return new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.sec); } getDate() { return new Date(this.year,this.month-1,this.day); } getDateNumber() { return Date.parse(this.getDate()); } //....
看来还是自己多此一举呀,浪费了一个晚上的时间。