如何解决FetchError:网络超时:https://db.fauna.com/
我目前正在使用 netlify 在我的应用程序中托管某些逻辑。我已经阅读了 faunadb 的已知问题,并探索了解决方案,例如在函数体之外声明对象的实例。我已经尝试了建议的解决方案,但没有运气。我正在寻找头韵解决方案,因为随着应用程序的增长,这些错误变得频繁。
const faunadb = require('faunadb')
const q = faunadb.query
const client = new faunadb.Client({secret})
exports.handler = async (event,context) => {
//body of function goes here
}
解决方法
我绝不肯定这会对您有所帮助,但实际上我一直在做相反的事情,将 Client 对象实例inside 包含在我的 Handler 中。
我收到了很多 HTTP_TIMEOUT 错误,因此我将所有内容移到处理程序中,错误不再出现。
不过,我不记得我在哪里读到的。但到目前为止它已经奏效了!
以下是我查询 FaunaDB 的 Netlify 函数之一,例如:
const headers = {
'Access-Control-Allow-Origin': '*','Access-Control-Allow-Headers': 'Content-Type','Access-Control-Allow-Methods': 'GET,POST,PUT,DELETE','Access-Control-Allow-Credentials': true,'Content-Type': 'application/json'
}
exports.handler = async (event) => {
const { query,Client } = require('faunadb')
const client = new Client({
secret: process.env.FAUNADB_SECRET
})
console.log('Function `get-last-order` invoked')
try {
const response = await client.query(
query.Paginate(query.Match(query.Index("orders_by_id_desc")),{ size: 1 })
)
console.log('success',response.data[0])
/* Success! return the response with statusCode 200 */
return {
headers,statusCode: 200,body: JSON.stringify(response.data[0].id),}
} catch (error) {
console.log('error',error)
/* Error! return the error with statusCode 400 */
return {
headers,statusCode: 400,body: JSON.stringify(error),}
}
}
希望这对你有帮助。
另外需要注意的是,函数有 10 秒的执行限制。但如果您的函数运行时间超过 10 秒,您应该先尝试修复该问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。