gpt4 book ai didi

javascript - 如何向 serverless-http 返回 promise

转载 作者:行者123 更新时间:2023-11-28 03:52:40 27 4
gpt4 key购买 nike

我正在尝试使用serverless-http将快速应用程序部署到 AWS lambda。但我的应用程序需要调用 init() 函数,该函数加载路由等内容,然后返回一个 promise 。

const serverless = require('serverless-http');
const Core = require('./core')

module.exports.handler = Core.init(process.cwd())
.then(Core => serverless(Core.Server))
.catch(err => console.log(err))

问题是 serverless-http 需要将 module.exports.handler 分配给 serverless 函数调用,而不是 Promise。

这个我也试过

const Core = require('./core')

Core.init(process.cwd())
.then(Core => module.exports.handler = serverless(Core.Server))
.catch(err => console.log(err))

但这也是行不通的,这是有道理的。

最佳答案

是的。正如 Siggy 所说,没有办法直接将 promise 返回给导出处理程序。但 serverless-http 所做的只是返回一个函数,该函数将 Express 应用程序包装在代理中并接受 lambda 参数。

这就是我的想法。实际上效果很好。

const serverless = require('serverless-http');
const Core = require('./core')

module.exports.handler = function(evt, ctx, callback) {
Core.init(process.cwd())
.then(Core => serverless(Core.Server))
.then(proxy => proxy(evt, ctx, callback))
.catch(err => console.log(err))
}

关于javascript - 如何向 serverless-http 返回 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47848336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com