我在流星的客户端创建了一个对象数组,每个对象都在其中修改了日期,如下所述:
客户端:
student;
此处student
是包含name, id, roll_no
var array = [];
student.forEach(function(singleStud, index){
var single_obj ={
"name":singleStud.name,
"student_id":singleStud.id,
"roll_no":singleStud.roll_no,
"college_name":"ABC college",
"college_id":"xyz Id",
"created_date": new Date()
}
array.push(single_obj);
},this)
Meteor.call('saveDetails', array, function (error, result) {
console.log("data Saved Successfully");
});
服务器端:
我使用插件mikowals:batch-insert在mongo中插入一个等同于insertMany
的数组。
Meteor.methods({
"saveDetails": function (array) {
try {
studentDetails.batchInsert(array);
return true;
} catch (err) {
return err;
}
}
});
当我保存时,created_date
将其保存为字符串("2018-04-23T10:26:26.766Z"
),但我希望将其保存为日期数据类型(ISODate("2018-04-23T10:26:26.766Z")
)。
如何在meteor.call
???
答案 0 :(得分:1)
这实际上是mikowals:batch-insert
中的错误。 mikowals-batch-insert
以递归方式尝试将对象转换为与MongoDB友好的JSON格式。作为此过程的一部分,它使用underscore clone来生成基本类型的shallow copies。虽然Date
是原始的,但它不能用_.clone
克隆,因此它会将日期变为字符串(eww)。您应该使用mikowals:batch-insert
打开问题。
无论如何,您不应该在客户端上定义此数据。客户端可能会恶意注入错误信息(这可能会破坏您的应用程序的逻辑)。相反,您应该映射输入并将日期注入传入对象。