将数据库连接对象与 @vendia/serverless-express 重用

Reusing the Database connection object with @vendia/serverless-express

提问人:thewebjackal 提问时间:12/8/2021 更新时间:12/8/2021 访问量:382

问:

我想在 Lambda 函数上使用我现有的 ExpressJS 代码,而 @vendia/serverless-express 似乎是正确的软件包。

我想重用 Lambda 调用之间的数据库连接。根据 AWS 文档和其他博客,可以通过将连接对象存储在函数外部来实现。但我不确定如何使用该软件包。handler@vendia/serverless-express

他们有以下示例代码:(可以在他们的 GH 存储库中找到 此处)

const serverlessExpress = require('@vendia/serverless-express')
const app = require('./app')

let serverlessExpressInstance

function asyncTask () {
  return new Promise((resolve) => {
    setTimeout(() => resolve('connected to database'), 1000)
  })
}

async function setup (event, context) {
  const asyncValue = await asyncTask()
  console.log(asyncValue)
  serverlessExpressInstance = serverlessExpress({ app })
  return serverlessExpressInstance(event, context)
}

function handler (event, context) {
  if (serverlessExpressInstance) return serverlessExpressInstance(event, context)

  return setup(event, context)
}

exports.handler = handler

我可以在函数中初始化连接对象。但是,我如何让它在我的 .(Express 应用程序) ?asyncTaskapp

节点 .js 亚马逊网络服务 aws-lambda 闭包

评论


答: 暂无答案