无服务器不连接 postgres 数据库

时间:2021-04-15 11:14:27

标签: javascript node.js serverless-framework typeorm

我离线使用无服务器并且它没有连接我的 typeorm 数据库。 我使用 sls offline --noPrependStageInUrl 运行该项目。 有没有办法将无服务器与 postgres 连接起来?我知道有 aws aurora bt 我是新手,不知道如何配置。

我的 index.js 文件:

import jwt from 'jsonwebtoken';
import serverless from 'serverless-http';
import shopifyAuth, {verifyRequest} from '@shopify/koa-shopify-auth';
import 'cross-fetch/polyfill';
import Koa from 'koa';
import Router from 'koa-router';
import apiRouter from './routes/index.routes';
import { createConnection } from 'typeorm';
const app = new Koa();


const router = new Router(); 

app.use(
  shopifyAuth({
    apiKey: process.env.SHOPIFY_API_KEY,
    secret: process.env.SHOPIFY_API_SECRET_KEY,
    scopes: [
      'read_themes, write_themes',
      'read_script_tags',
      'write_script_tags',
    ],
    accessMode: 'offline',

    async afterAuth(ctx) {
      console.log('We did it!', ctx.state);

      const { shop, accessToken } = ctx.state.shopify;
      
      ctx.cookies.set('shop', shop, {
        httpOnly: false,
        secure: true,
        sameSite: 'none',
        domain: process.env.SUBDOMAIN,
      });
      
      ctx.cookies.set('accessToken', accessToken, {
        httpOnly: false,
        secure: true,
        sameSite: 'none',
        domain: process.env.SUBDOMAIN,
      });
      
      var token = jwt.sign(
        {
          shop: shop,
          accessToken:accessToken,
          apiKey: process.env.SHOPIFY_API_KEY
        },
        process.env.SHOPIFY_API_SECRET_KEY
      );

      ctx.cookies.set('jwtToken', token, {
        httpOnly: true,
        secure: true,
        sameSite: 'none',
        domain: process.env.SUBDOMAIN,
      });

      
      ctx.statusCode = '302';
      ctx.redirect(process.env.FRONTEND);
    },
  })
);

app.use(apiRouter.routes()).use(apiRouter.allowedMethods());

app.use(async (ctx) => {
  const {
    query: { shop },
  } = ctx;
  const routeForRedirect = shop == null ? `/` : `/auth/?shop=${shop}`;
  ctx.redirect(routeForRedirect);

});
app.use(async () => { await createConnection()
  .then(() => {
     console.log("Connected to the database")
  })
  .catch(() => console.log("Unable to connect to the database"))});

module.exports.handler = serverless(app);

有什么方法可以将无服务器与 postgres 连接起来?

0 个答案:

没有答案