Meteor 服务器端的Moment.js和格式
需要知道:Meteor 服务器端的Moment.js和格式,meteor,momentjs,Meteor,Momentjs,需要知道: 我用的是最新版本的meteor 我正在使用最新版本的moment.js 此代码位于服务器端 我最后犯了这个错误 SyncedCron: Exception "count daily parks per spot" ReferenceError: moment is not defined at spotIDList.forEach (app/server/main.js:66:18) at SynchronousCursor.forEach (packages
- 我用的是最新版本的meteor
- 我正在使用最新版本的moment.js
- 此代码位于服务器端
我最后犯了这个错误
SyncedCron: Exception "count daily parks per spot" ReferenceError: moment is not defined
at spotIDList.forEach (app/server/main.js:66:18)
at SynchronousCursor.forEach (packages/mongo/mongo_driver.js:1054:16)
at Cursor.(anonymous function) [as forEach] (packages/mongo/mongo_driver.js:876:44)
at Object.job (app/server/main.js:62:16)
at packages/percolate_synced-cron.js:242:26
at scheduleTimeout (packages/percolate_synced-cron.js:290:7)
at packages/percolate_synced-cron.js:338:42
at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1186:26)
at packages/meteor.js:502:25
at runWithEnvironment (packages/meteor.js:1238:24)
上面的代码片段来自以下代码
SyncedCron.add({
name: 'Simple Cron Function',
schedule: function(parser) {
// parser is a later.parse object
return parser.text('every 15 second');
},
job: function(intendedAt) {
var spotList = spots.find({});
spotList.forEach((spot) => {
var devaddr = `${spot.devaddr}`;
var date = moment(new Date());
console.log(date.format("YYYY-MM-DD HH:mm:ss.SS"));
var dailyVisitsCount = log.find(
{
devaddr : devaddr,
car : "1",
createdAt: {
$gte: date.format("YYYY-MM-DD HH:mm:ss.SS")
}
},
{
sort: {
createdAt:1
}
}
).count();
spots.update({devaddr : devaddr}, { $set: {numberOfParksToday: dailyVisitsCount } } , {multi: false}, function(err, res) {
if (err) throw err;
});
console.log("Daily Visits Count Updated to " + dailyVisitsCount);
});
}
});
任何关于为什么这段代码没有按它应该的方式工作的见解都是值得赞赏的
我确实发现这个问题是由于之前版本meteor中的一个bug引起的,该bug已经修复
我只是想用DB接受的格式获取今天的日期,并用它来过滤我的结果。还欢迎其他建议
PS:Momnet.js在不同的位置为我工作(客户端代码)
编辑:
您需要安装moment.js包:
meteor npm i——保存瞬间
然后在文件顶部,您需要导入以下内容:
从“时刻”导入时刻
然后,要以DB将接受的格式获取日期,请使用moment do:
var date=moment().toDate()
使用
矩()
创建当前日期/时间的矩对象。在其上运行toDate()
会在日期对象中提供相同的日期/时间。您需要安装moment.js包:
meteor npm i——保存瞬间
然后在文件顶部,您需要导入以下内容:
从“时刻”导入时刻
然后,要以DB将接受的格式获取日期,请使用moment do:
var date=moment().toDate()
使用
矩()
创建当前日期/时间的矩对象。在其上运行toDate()
可以在日期对象中提供相同的日期/时间。如何添加moment包以及如何导入它?meteor add momentjs:moment
如何添加moment包以及如何导入它?meteor add momentjs:moment
谢谢您的工作,我只需要使用meteor add ecmascript即可使用import@scriptkid没问题:)好吧,这里有个大问题。答:当我添加ecmascript
时,由于某种原因,它破坏了我的构建。B.当我没有ecmascript
时,我从'moment'中得到了一个导入瞬间的错误,这使得我的大部分服务器端代码无效。请帮忙?我认得那个名字。。。你通过我的网站给我发信息,对吗?嘿好的,你能告诉我错误是什么吗?嘿,肖恩,是的,我通过你的网站联系过你。请检查我的编辑,它包含了我得到的新错误。谢谢,我只需要使用meteor add ecmascript
就可以使用了import@scriptkid没问题:)好吧,这里有个大问题。答:当我添加ecmascript
时,由于某种原因,它破坏了我的构建。B.当我没有ecmascript
时,我从'moment'中得到了一个导入瞬间的错误,这使得我的大部分服务器端代码无效。请帮忙?我认得那个名字。。。你通过我的网站给我发信息,对吗?嘿好的,你能告诉我错误是什么吗?嘿,肖恩,是的,我通过你的网站联系过你。请检查我的编辑,它包含我得到的新错误
SyncedCron.add({
name: 'Simple Cron Function',
schedule: function(parser) {
// parser is a later.parse object
return parser.text('every 15 second');
},
job: function(intendedAt) {
var spotList = spots.find({});
spotList.forEach((spot) => {
var devaddr = `${spot.devaddr}`;
var date = moment(new Date());
console.log(date.format("YYYY-MM-DD HH:mm:ss.SS"));
var dailyVisitsCount = log.find(
{
devaddr : devaddr,
car : "1",
createdAt: {
$gte: date.format("YYYY-MM-DD HH:mm:ss.SS")
}
},
{
sort: {
createdAt:1
}
}
).count();
spots.update({devaddr : devaddr}, { $set: {numberOfParksToday: dailyVisitsCount } } , {multi: false}, function(err, res) {
if (err) throw err;
});
console.log("Daily Visits Count Updated to " + dailyVisitsCount);
});
}
});
W20180312-08:03:15.324(-7)? (STDERR) app/server/main.js:1
W20180312-08:03:15.325(-7)? (STDERR) (function(Npm,Assets){(function(){import moment from 'moment'
W20180312-08:03:15.325(-7)? (STDERR) ^^^^^^
W20180312-08:03:15.325(-7)? (STDERR)
W20180312-08:03:15.325(-7)? (STDERR) SyntaxError: Unexpected reserved word
W20180312-08:03:15.326(-7)? (STDERR) at Object.exports.runInThisContext (vm.js:53:16)
W20180312-08:03:15.327(-7)? (STDERR) at /home/elder/Desktop/Recreation-of-ParkeyeDashboard/ParkeyeDashboard/.meteor/local/build/programs/server/boot.js:289:30
W20180312-08:03:15.327(-7)? (STDERR) at Array.forEach (native)
W20180312-08:03:15.329(-7)? (STDERR) at Function._.each._.forEach (/home/elder/.meteor/packages/meteor-tool/.1.4.2_3.14963jl++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20180312-08:03:15.330(-7)? (STDERR) at /home/elder/Desktop/Recreation-of-ParkeyeDashboard/ParkeyeDashboard/.meteor/local/build/programs/server/boot.js:128:5
W20180312-08:03:15.330(-7)? (STDERR) at /home/elder/Desktop/Recreation-of-ParkeyeDashboard/ParkeyeDashboard/.meteor/local/build/programs/server/boot.js:344:5
W20180312-08:03:15.330(-7)? (STDERR) at Function.run (/home/elder/Desktop/Recreation-of-ParkeyeDashboard/ParkeyeDashboard/.meteor/local/build/programs/server/profile.js:480:12)
W20180312-08:03:15.331(-7)? (STDERR) at /home/elder/Desktop/Recreation-of-ParkeyeDashboard/ParkeyeDashboard/.meteor/local/build/programs/server/boot.js:343:11