我想在我的数据库条目中使用时间日志,我希望始终从服务器获取时间。
到目前为止,我对此进行了设置:
Meteor.methods({
getTimeFromServer: function () {
var serverTime = new Date().toLocaleTimeString();
return serverTime;
}
});
我想像这样使用它们:
Template.myTemplate.events({
'click .btn': function(e) {
var propsOfObject = {
name: $('#idName').val(),
email: $('#idEmail').val(),
time: Meteor.call('getTimeFromServer')
}
Meteor.call('addItemToDataBase', propsOfObject)
}
});
无法弄清楚我做错了什么。我没有收到任何错误消息。时间' -property只是空的。
答案 0 :(得分:3)
首先,您的方法无法正常工作,因为客户端上的Meteor.call始终是异步的:它不会立即返回任何内容,您必须提供回调以便稍后获取结果。
此处更多内容:Meteor.methods returns undefined
我认为您应该直接在插入方法中获取服务器时间,而不是在插入之前尝试从服务器获取服务器时间:它将为您节省方法调用并且它也更简单。
客户:
Template.myTemplate.events({
'click .btn': function(e) {
var propsOfObject = {
name: $('#idName').val(),
email: $('#idEmail').val()
};
Meteor.call('addItemToDataBase', propsOfObject)
}
});
服务器:
Meteor.methods({
addItemToDatabase:function(fields){
check(fields,{
name:String,
email:String
});
//
_.extend(fields,{
time:new Date().toLocaleTimeString()
});
//
MyCollection.insert(fields);
}
});