以下是我遇到问题的一些Parse云代码:
var moment = require('moment');
Parse.Cloud.define
("myCloudFunction", function(request, response)
{
var now = moment();
var later = moment("2017-07-09T20:00:00");
var x = 7;
if (later.isAfter(now)) x = x-1;
else x = x+1;
console.log(x);
});
运行时收到此错误消息:
Error: TypeError: Object Sun Jul 09 2017 20:00:00 GMT+0000 (UTC) has no method 'isAfter' at main.js:406:12 (Code: 141, Version: 1.2.18)
当然,我已经简化了我的问题。
我做错了什么?
答案 0 :(得分:2)
Cloud Code使用的托管版本的moment.js文件停留在版本1.7.2,而isAfter
方法是2.0 +。
下载moment.js的新副本并将其放入您的云/文件夹中,然后按此要求:
var moment = require('cloud/moment.js');
答案 1 :(得分:0)
行var moment = require('moment');
需要在函数之外,因为它定义了整个文件的要求。我通常会将所有require
语句放在文件的顶部。
因此,您的上述代码应如下所示:
var moment = require('moment');
Parse.Cloud.define
("myCloudFunction", function(request, response)
{
var now = moment();
var later = moment("2017-07-09T20:00:00");
var x = 7;
if (later.isAfter(now)) x = x-1;
else x = x+1;
console.log(x);
});
答案 2 :(得分:0)
似乎有些功能即使在本机时刻也无法工作。解析支持的时刻(时刻v1.7.2)...使用添加功能时它不起作用...仅在使用我的下载时时刻版(2.8.4)
请参阅以下代码:
var moment = require('moment');
var moment2 = require('cloud/moment.js');
Parse.Cloud.define ("momentChecks", function(request, response)
{
var later = moment("2017-07-09T20:00:00");
var later2 = moment("2017-07-09T20:00:00");
var later3 = moment2("2017-07-09T20:00:00");
later.add(1, 'days').format("dddd, MMMM Do YYYY, h:mm:ss a");
later2.add(2, 'days').format("dddd, MMMM Do YYYY, h:mm:ss a");
later3.add(2, 'days').format("dddd, MMMM Do YYYY, h:mm:ss a");
var message = "\nlater: " + later.format() + "\nlater2: " + later2.format() + "\nlater3: " + later3.format();
console.log(message);
response.success(message);
});