Meteor:未捕获的 RangeError:超出最大调用堆栈大小
2017-02-21
5663
我对 Meteor 还很陌生。我正在开发一个简单的应用程序。 这是我遇到的问题:
Template.newFeedForm.events({
'submit #new-feed-form'(event) {
event.preventDefault();
const target = event.target;
const text = target.text;
Meteor.call('feeds.insert', text);
target.text.value = '';
}
});
所以我有 newFeedForm 模板,在我的 feeds.js 中我有
Meteor.methods({
'feeds.insert'(text){
check(text, String);
//check(hashtag, String);
// Make sure the user is logged in before inserting a task
if (! this.userId) {
throw new Meteor.Error('not-authorized');
}
console.log(this.userId);
// Feeds.insert({
// text: text,
// owner: this.userId,
// username: Meteor.users.findOne(this.userId).username,
// createdAt: new Date()
// });
}
});
我在这里注释掉了 Feeds.insert,认为它导致了问题。似乎有些不同。 每当执行 Meteor.call 时,我都会得到这个:
15536​​6114
不知道发生了什么。 这是我的 repo,它重现了此错误: https://github.com/yerassyl/nurate-meteor
2个回答
通常,当出现此类错误时(尤其是在处理 Meteor 方法时),这意味着您可能没有传递“正确”的数据(或您认为的数据)。
查看您的表单处理代码,我注意到您从未获取过 textarea 文本数据。
const text = target.text;
target.text 返回实际的 textarea DOM 对象,但您真正想要的是对象包含的值。以下代码将解决您的问题。
const text = target.text.value;
jordanwillis
2017-02-21
当您使用
db.find()
与 Meteor 协同工作时,它会给出错误
RangeError: Maximum call stack size reached
,因为它返回的是作为反应性数据源的游标。
使用此
db.find().fetch()
以数组形式获取数据。
db.find() -> It return cursor which is reactive data source
db.find().fetch() -> It return array from the cursor
shubham kapoor
2021-02-28