2017-12-27 757 views
1

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

谢谢!

回答

0

我读的地方(找不到了),你不能访问除了什么是通过交易空前绝后参数数组

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

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

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

特别是:

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

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