0

根据流星文档,插入块:

在服务器上,如果您不提供回调,则插入块,直到数据库确认写入,或者如果出现问题则抛出异常。如果您确实提供了回调,insert 仍会立即返回 ID。

所以这是错误的:

Meteor.methods({
  post: function (options) {
    return Stories.insert(options)
  }
});

我需要这样做:

Meteor.methods({
  post: function (options) {
    return Stories.insert(options, function(){})
  }
});

有人可以确认是这种情况吗?前者会阻塞整个服务器,直到数据库返回?

4

1 回答 1

2

是的,它会阻塞,但不会阻塞整个服务器。

在 Meteor 中,您的服务器代码在每个请求中运行在一个线程中,而不是以 Node.js 典型的异步回调样式。我们发现线性执行模型更适合 Meteor 应用程序中的典型服务器代码。

因此,如果您担心它会像在典型 Node 中那样阻塞整个服务器,请不要担心。

于 2012-10-27T14:18:49.053 回答