Reputation: 3
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