1

我正在尝试查找描述对在 javascript Foxx 微服务中运行的事务中可以安全访问的内容的限制的文档。我在某处(现在找不到)读到除了通过事务参数数组传递的内容之外,您无法访问任何内容,并且您必须重新导入事务中使用的所有节点模块。我很好奇我可以安全地将什么传递到事务中——例如 ArangoDB 数据库对象本身(而不是重新导入它),为什么存在这些限制,以及性能影响是什么(对象编组?)。在我对单节点服务器的测试中,似乎访问外部定义的变量确实有效,所以我假设这些限制与数据库服务器/集群的更复杂的配置有关。

谢谢!

4

1 回答 1

0

我在某处读过(现在找不到)除了通过事务参数数组传递的内容外,您无法访问任何内容

这适用于 UDF(用户定义的函数),而不是 Foxx 微服务。

我相信关于 Foxx 的所有注意事项都在手册中:

https://docs.arangodb.com/3.3/Manual/Foxx/

尤其是:

  • “你不应该依赖不同请求之间的服务器端状态(除了数据库本身),因为没有办法确保在相同的上下文中处理连续的请求。”

  • “因为 JavaScript 代码在数据库中运行……所有 Foxx 和 ArangoDB API 都是纯同步的,应该被视为阻塞。”

于 2017-12-27T20:09:53.683 回答