Towfiq Amiri
Towfiq Amiri

Reputation: 3

Apollo Server, Express.js and Mongoose Deployment on Netlify

everyone I want to deploy my project which is created by express.js, mongoose and apollo server on Netlify and when I run the project by "set NODE_ENV=development&& npm run start:lambda" command it throws the following error, how can I fix it. error: unable to determine event source based on event.

    // src/lambda/server.js
    const express = require("express");
const path = require("path");
const mongoose = require("mongoose");
const graphqlUploadExpress = require("graphql-upload/graphqlUploadExpress.js");
const authMiddleware = require("../v1/middlewares/auth");
const cors = require("cors");
const { I18n } = require("i18n");
const apolloServerHandler = require("../apolloServer");

if (process.env.NODE_ENV != "production") {
  require("dotenv").config();
}

const i18n = new I18n();

i18n.configure({
  locales: ["en"],
  defaultLocale: "en",
  directory: path.join(__dirname, "../v1/locales"),
});

const app = express();
app.use(cors());
app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Headers", "Content-Type, Autorization");
  next();
});

app.use((req, res, next) => {
  req.i18n = i18n;
  next();
});

app.use(graphqlUploadExpress());
app.use("/", express.static(path.join(__dirname, "../v1/uploads")));

app.use(authMiddleware);

const URI = process.env.URI;

mongoose.set("strictQuery", false);
mongoose.connect(URI, { family: 4 }, (err) => {
  throw err;
});

exports.handler = (event, context, callback) => {
  return apolloServerHandler(
    {
      ...event,
      requestContext: event.requestContext || {},
    },
    context,
    callback
  );
};

// src/apolloServer.js
const constructResolvers = require("./v1/graphql/resolvers");
const constructSchema = require("./v1/graphql/schema");
const typeDefs = constructSchema.typeDefs;
const resolvers = constructResolvers.resolvers;
const { ApolloServer } = require("apollo-server-lambda");

const apolloServer = new ApolloServer({
  typeDefs,
  resolvers,
});
const apolloServerHandler = apolloServer.createHandler({
    cors: {
      origin: '*'
    }
  });
module.exports = apolloServerHandler;

Upvotes: 0

Views: 21

Answers (0)

Related Questions