在 NodeJS netlify-lambda 上运行的 Lambda 函数出错 — "TypeError: Expected signal to be an instanceof AbortSign



我最近一直在尝试在Netlify网站上设置Lambda函数。网站的其余部分正在盖茨比运行。我能够在开发和生产中使用一些基本功能(例如,返回"你好世界"(,但每当我尝试更复杂的东西时,我都会遇到问题。

我的函数在开发过程中似乎总是返回一个错误,上面写着Function invocation failed: TypeError: Expected signal to be an instanceof AbortSignal.我还没有尝试过让它在生产中工作(尽管它显然无法正常工作,依赖.env(。我使用netlify-lambda来实现这一点。

例如,这是我试图开始工作的代码,从这个要点出发。我正在尝试使用他们的API从一个简单的Airtable数据库中获取记录。

require("dotenv").config({ debug: process.env.DEBUG })

const Airtable = require("airtable")
Airtable.configure({
endpointUrl: "https://api.airtable.com",
apiKey: process.env.AIRTABLE_PASS,
})
var base = Airtable.base(process.env.AIRTABLE_ID)
exports.handler = function(event, context, callback) {
const allRecords = []
base('Main')
.select({
maxRecords: 100,
view: 'all'
})
.eachPage(
function page(records, fetchNextPage) {
records.forEach(function(record) {
allRecords.push(record)
})
fetchNextPage()
},
function done(err) {
if (err) {
callback(err)
} else {
const body = JSON.stringify({ records: allRecords })
const response = {
statusCode: 200,
body: body,
headers: {
'content-type': 'application/json',
'cache-control': 'Cache-Control: max-age=300, public'
}
}
callback(null, response)
}
}
)
}

无论我是从浏览器中点击url,还是通过Postman或表单发送GET或POST请求,都会发生错误。

Netlify网站的名称是亲切的engelbart-b6885d,repo就在这里。

如果有帮助的话,很乐意发布错误日志。非常感谢。

将airtable降级到0.8.1版本。

我也有同样的问题。我觉得这很有帮助。

最新更新