FetchError: request to https://db.fauna.com/ failed, reason: write EPIPE

FetchError: request to https://db.fauna.com/ failed, reason: write EPIPE

我正在尝试使用访问 FaunaDB 的 Netlify Functions 启动我的新网络应用程序,虽然它似乎在本地运行良好(通过 netlify dev),但当它在线时,感觉每次对数据库的第 3 次调用都失败并显示以下内容错误:

FetchError: request to https://db.fauna.com/ failed, reason: write EPIPE
at ClientRequest.<anonymous> (/var/task/src/node_modules/faunadb/node_modules/node-fetch/lib/index.js:1461:11)
at ClientRequest.emit (events.js:315:20)
at TLSSocket.socketErrorListener (_http_client.js:426:9)
at TLSSocket.emit (events.js:315:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  type: 'system',
  errno: 'EPIPE',
  code: 'EPIPE'
}

我不知道这意味着什么或我可能做错了什么或如何解决它。好像是站在Fauna这边。

执行对 Fauna 调用的所有“服务器端代码”都在各种 Netlify 函数中(我猜它们只是包裹了 AWS Lambda)。各种不同的函数调用命中不同的 Netlify 函数都会产生这个错误,不仅仅是一个特别的错误。

您收到的错误可能是由类似于从 AWS Lambda 函数查询 FaunaDB 的问题引起的:https://docs.fauna.com/fauna/current/drivers/known_issues

本质上,支持您的函数的 Netlify 函数上下文可能并不总是 运行。如果是这种情况,当恢复执行上下文并尝试下一个查询时,存储在 FaunaDB 驱动程序的客户端对象中的连接状态可能会过时。

典型的解决方案是在主处理程序逻辑中创建客户端对象并执行查询,而不是在初始化逻辑中。

不知道这个回答对你的情况是否有帮助。如果是,请告诉我,我们可以更新 Fauna 文档中的指南。