Javascript 尝试显示计算器的最后10次计算
我可以让我的程序显示所有以前的计算,但我想限制到最近的10 这是我的问题Javascript 尝试显示计算器的最后10次计算,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我可以让我的程序显示所有以前的计算,但我想限制到最近的10 这是我的问题 Template.keypad.helpers({ previous: function() { return previous.find(); } }); 我试着用这个来代替它 Template.keypad.helpers({ previous: function() { return previous.sort({_id:1}).limit(10);} }); 但是,当我实现第二块代码时,它不会显
Template.keypad.helpers({
previous: function() { return previous.find(); }
});
我试着用这个来代替它
Template.keypad.helpers({
previous: function() { return previous.sort({_id:1}).limit(10);}
});
但是,当我实现第二块代码时,它不会显示集合中的任何项目
我能做些什么来让它工作?多谢各位
这是我的startup.js文件
if (Meteor.isServer) {
Meteor.startup(function () {
if(Previous.find().count() === 0){
Previous.insert({sum:"1+1", answer:"2"});
}
});
Meteor.methods({
previousInsert: function(arg1, operator, result){
return Previous.insert({
arg1:calculation,
operator:"=",
result:result,
datetime: new Date(),
//user: this.userId
});
},
});
}
这是我启动程序时遇到的错误…=>阻止启动的错误:
使用ecmascript处理文件时(针对目标os.linux.x86_64):
server/startup.js:8:18:server/startup.js:意外令牌(8:18)
=>您的应用程序有错误。正在等待文件更改。查询的语法应如下所示:
Template.keypad.helpers({
previous: function() {
return previous.find({}, {sort: {_id:1}, limit: 10})
});
Meteor.call('previousInsert', 2, 4, '+', 6)
但是,由于_id字段不包含升序整数,因此仅此项无法提供所需的结果。您最好的选择是保存时间戳并按该字段排序
我建议您遵循集合名称大写的惯例,以便更容易区分previous(您的助手方法名称)和previous(集合)
遵循“不信任客户端”的原则,我会在服务器上的Meteor方法中添加自动值,如下所示:
Meteor.methods({
previousInsert: function(arg1, arg2, operator, result){
return Previous.insert({
arg1:arg1,
arg2:arg2,
operator:arg1,
result:result,
datetime: new Date(),
//user: this.userId
});
},
});
然后像这样拜访客户:
Template.keypad.helpers({
previous: function() {
return previous.find({}, {sort: {_id:1}, limit: 10})
});
Meteor.call('previousInsert', 2, 4, '+', 6)
并使用以下命令检索最后10个:
Previous.find({}, {sort: {datetime:-1}, limit: 10})
如果您使用的是Accounts软件包,请取消对user:this.userId行的注释,您可以将筛选器更改为:
Previous.find({user: Meteor.userId()}, {sort: {datetime:-1}, limit: 10})
并允许每个用户仅查看自己之前的10次计算
如果您不想使用Meteor方法进行插入,可以查看
这里有一个你想要实现的最简单的例子。
请注意,我不建议像这样使用eval。但是,这与此处提出的原始问题无关。我如何为每个id添加时间戳?您不需要为_id字段添加时间戳,它是一个新字段。我将把它添加到回答中javascript api不支持您从python示例复制的流畅api调用样式我不知道将所有这些放在哪里。。。我将meteor方法放在if(meteor.isServer)语句中的startup.js文件中。然后我在键盘助手中添加了Previous.find,但是我不知道在meteor方法中要编辑什么才能使其适合我的程序。我应该在哪里调用meteor方法呢?我已经在上面的问题中添加了一些内容,显示了我现在收到的错误以及我遇到问题的代码