问题标签 [node-fibers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
224 浏览

javascript - 带有流星的 npm 包串行端口的光纤错误

我正在使用带有流星的 SerialPort npm 包。我使用 wrapAsync 列出串行端口,但我不知道如何使用 serialPort.on 方法。当我想在我的 Cars 集合中插入数据时出现错误:

Meteor 代码必须始终在 Fiber 中运行。尝试使用 Meteor.bindEnvironment 包装传递给非 Meteor 库的回调。

代码 :

0 投票
1 回答
1637 浏览

azure - npm install -g fiber 在 Azure Web App 上失败

在https://portal.azure.com/上使用控制台

我怎样才能解决这个问题?这是所有的错误信息吗?

0 投票
2 回答
4127 浏览

node.js - Nodejs(同步)找不到纤程二进制文件

我见过类似的问题,但还没有真正适合我的解决方案(大多数用户只是重新安装光纤或流星(我没有使用流星))。

我已将 nodejs 模块 Sync 添加到我的 nodejs 0.12.6 项目中。它的依赖项是使用 Sync 自动安装的 Fibers 模块。现在我想通过 require 加载 Sync,但它失败并显示消息

... /win32-x64-v8-4.3/fibers.node 未找到

这是正确的:在sync/node_modules/fibers/bin/中没有名为win32-x64-v8-4.3的目录只有win32-x64-v8-4.2 重命名并没有解决问题(本来太容易了).. .

  1. 我怎么解决这个问题?这怎么可能发生?
  2. 最后一个数字(4.3)是什么意思?我猜是 Windows,64 位,Javascript v8 引擎,然后呢?纤维版?

有什么想法或提示吗?

更新:

  • 我尝试将节点升级到 0.12.6,但没有任何改变。
  • 我发现 4.3 是关于什么的,它是 v8 版本。好吧,当我用电子运行我的应用程序时,它是v8: '4.3.61.21'。用node查看版本时,是3.28。所以可能是电子“故障”?

更新#2:

  • 好的,我发现电子基于 io.js 而不是节点。这解释了不同的 v8 版本。但仍然没有解决办法。使用最新的 io.js (2.3.3) 安装光纤时,它会测试 4.2 二进制文件,但电子需要 4.3 :(

更新#3:

  • 即使使用与 electron 相同的 io.js 版本 2.3.1,它也只安装 4.2 二进制文件。

更新#4:

解决方案:

  • 请看下面我的回答。:)
0 投票
1 回答
51 浏览

heroku - 将流星应用程序部署到heroku缺少光纤包后

添加数据库等后,我将 Meteor 应用程序部署到 heroku,当我尝试访问该应用程序时,我收到一条错误消息,提示服务器找不到名为“Fibers”的模块。这是什么意思?我从来没有安装过那个模块。

0 投票
0 回答
165 浏览

node.js - 无法为 Electron 生成 V8-4.3 node-fibers 二进制文件

好的,所以我有一个很好的捆绑Meteor应用程序,现在应该是 Node 可运行的。我正试图让它与Electron一起工作。我运行npm install添加我的模块,一切正常,除了纤维创建一个名为 win32-x64-3.28 的文件夹,当我运行 Electron 时出现错误,Electron 需要 win32-x64-4.3 光纤二进制文件。我尝试使用 node-gyp 构建它并不断得到相同的结果。我使用的是 64 位 Windows 7、Node 12.7、npm 2.11.3、Electron 0.30.4 和 Fiber 1.0.5。

如何安装正确版本的光纤 win32-x64-4.3 以使 Electron 满意?

0 投票
1 回答
2689 浏览

javascript - 使用 Future 使用异步调用正确处理 Meteor 错误

我想知道在使用异步方法时如何正确处理 Meteor 的错误。我尝试了以下方法,但是客户端回调的结果参数而不是错误参数中返回了错误。

服务器代码:

客户端代码:

正如我上面所说,当服务器端的 HTTP.get() 返回错误时,客户端事件中的“错误”始终未定义。我也尝试在服务器端替换future.return(error);future.throw(error);,但这确实会在服务器端引发错误。客户端错误参数然后得到 500 服务器错误,尽管在服务器上抛出的错误是 401 未经授权的错误。

那么,是否可以正确使用 Fiber 的 Future 以便客户端回调接收与服务器回调相同的错误参数?

0 投票
0 回答
196 浏览

node.js - 流星内部结构:纤维是如何工作的?

Meteor 大量使用了光纤,每个客户端的请求都在单独的光纤中运行,但这实际上是做什么的呢?

从阅读中可以看出,fiber 的优势似乎在于它们让您可以以同步的方式编写异步代码。这就是他们所做的一切吗?

另外, this.unblock() 如何在方法中工作?文档说:“在 Meteor 中,您的服务器代码在每个请求中运行在一个线程中,而不是以 Node 典型的异步回调样式。”

纤维如何模拟线程,而不是真正的线程?如果 Meteor 方法执行长时间计算,它如何不阻塞事件循环?

0 投票
0 回答
139 浏览

mongodb - Meteor MongoDB 查询需要很长时间

我正在为我的一个项目使用流星。我有一个零星的问题,有时一两个查询需要很长时间。例如,以下日志取自 MongoDB 日志,其中每个块的最后一部分提到了查询所用的时间(以毫秒为单位)。

可以看出,第 4 条和第 5 条日志分别显示 14774 毫秒和 17163 毫秒,其他几乎比这些值小 14-17 倍。对于需要很长时间的查询,我只能看到IXSCAN值从{ value: 1 }变为。{ r.lid: 1 }在谷歌搜索了一下之后,IXSCAN我知道它选择了要扫描的索引。我有以下问题,

  • 为什么为某些查询选择了错误的索引,尽管它们都是由相同的代码引发并且具有相同的查询属性?
  • 有没有办法为这个查询强制索引(最好来自流星)
  • 虽然与此无关,但为什么创建了许多连接(如每行 conn2XX 的开头所示)。我正在使用节点光纤来查询并行后台请求。有没有办法杀死这些连接?

[conn252] 查询 cdk.WLCV 查询:{ $query: { cid: "C1", uid: "W1", r.lid: "L12", value: { $gte: 1031, $lte: 1107 } }, orderby : { value: 1 } } planSummary: IXSCAN { value: 1 } ntoreturn:0 ntoskip:0 nscanned:59754 nscannedObjects:59754 keyUpdates:0 numYields:0 locks(micros) r:155165 nreturned:77 reslen:48530 155ms

[conn251] 查询 cdk.WLCV 查询:{ $query: { cid: "C2", uid: "W1", r.lid: "L12", value: { $gte: 1031, $lte: 1107 } }, orderby : { value: 1 } } planSummary: IXSCAN { value: 1 } ntoreturn:0 ntoskip:0 nscanned:59754 nscannedObjects:59754 keyUpdates:0 numYields:0 locks(micros) r:172445 nreturned:78 reslen:49160 172ms

[conn248] 查询 cdk.WLCV 查询:{ $query: { cid: "C3", uid: "W1", r.lid: "L12", value: { $gte: 1031, $lte: 1107 } }, orderby : { value: 1 } } planSummary: IXSCAN { value: 1 } ntoreturn:0 ntoskip:0 nscanned:59754 nscannedObjects:59754 keyUpdates:0 numYields:0 locks(micros) r:161176 nreturned:77 reslen:48222 161ms

[conn249] 查询 cdk.WLCV 查询:{ $query: { cid: "C4", uid: "W1", r.lid: "L12", value: { $gte: 1031, $lte: 1107 } }, orderby : { value: 1 } } planSummary: IXSCAN { r.lid: 1 } ntoreturn:0 ntoskip:0 nscanned:46147 nscannedObjects:46147 scanAndOrder:1 keyUpdates:0 numYields:11037 locks(micros) r:1384301 nreturned:77 reslen: 48684 14774ms`

[conn250] 查询 cdk.WLCV 查询:{ $query: { cid: "C5", uid: "W1", r.lid: "L12", value: { $gte: 1031, $lte: 1107 } }, orderby : { value: 1 } } planSummary: IXSCAN { r.lid: 1 } ntoreturn:0 ntoskip:0 nscanned:46147 nscannedObjects:46147 scanAndOrder:1 keyUpdates:0 numYields:9464 locks(micros) r:1904782 nreturned:77 reslen: 48761 17163ms

[conn249] 查询 cdk.WLCV 查询:{ $query: { cid: "C6", uid: "W1", r.lid: "L12", value: { $gte: 790, $lte: 940 } }, orderby : { value: 1 } } planSummary: IXSCAN { r.lid: 1 } cursorid:305719783659 ntoreturn:0 ntoskip:0 nscanned:46147 nscannedObjects:46147 scanAndOrder:1 keyUpdates:0 numYields:0 locks(micros) r:114383 nreturned: 101 reslen:63650 114ms`

[conn250] 查询 cdk.WLCV 查询:{ $query: { cid: "C7", uid: "W1", r.lid: "L12", value: { $gte: 790, $lte: 940 } }, orderby : { value: 1 } } planSummary: IXSCAN { r.lid: 1 } cursorid:305713399194 ntoreturn:0 ntoskip:0 nscanned:46147 nscannedObjects:46147 scanAndOrder:1 keyUpdates:0 numYields:0 locks(micros) r:105275 nreturned: 101 分辨率:63246 105 毫秒

[conn251] 查询 cdk.WLCV 查询:{ $query: { cid: "C8", uid: "W1", r.lid: "L12", value: { $gte: 790, $lte: 940 } }, orderby : { value: 1 } } planSummary: IXSCAN { r.lid: 1 } cursorid:306335307165 ntoreturn:0 ntoskip:0 nscanned:46147 nscannedObjects:46147 scanAndOrder:1 keyUpdates:0 numYields:0 locks(micros) r:134425 nreturned: 101 分辨率:63650 134 毫秒

[conn252] 查询 cdk.WLCV 查询:{ $query: { cid: "C9", uid: "W1", r.lid: "L12", value: { $gte: 790, $lte: 940 } }, orderby : { value: 1 } } planSummary: IXSCAN { r.lid: 1 } cursorid:306643211432 ntoreturn:0 ntoskip:0 nscanned:46147 nscannedObjects:46147 scanAndOrder:1 keyUpdates:0 numYields:0 locks(micros) r:143227 nreturned: 101 分辨率:63650 143 毫秒

以下是我从 mongo 控制台获得的数据库统计信息。

0 投票
1 回答
1536 浏览

meteor - 部署到 Digital Ocean,Ubuntu 14.04 时出现 Meteor Up 错误

使用 Meteor Up 在 Digital Ocean 上将 Meteor 项目部署到 Ubuntu 14.04(内核:Ubuntu 14.04 x64 vmlinuz-3.13.0-57-generic)实例时遇到问题。

mup setup运行良好,所以 mup.json 没有问题。

然后,当我跑步时,mup deploy我得到:

我可以看到问题出在 Fibers 上,但不知道为什么会失败。

有任何想法吗?谢谢。

0 投票
1 回答
440 浏览

meteor - 当 Meteor.bindEnvironment 内的服务器出错时,无法在客户端捕获 Meteor.Error

在服务器代码中,我无法在客户端的Meteor.call错误回调中得到错误,内部发生错误Meteor.bindEnvironment。下面是要复制的示例代码

在服务器

在 Meteor 事件中的客户端中,

会话变量永远不会设置。任何帮助都会很棒。谢谢!