When My Middleware Runs Mongoose Breaks
Unanswered
Eulophid wasp posted this in #help-forum
Eulophid waspOP
When this code runs:
This code throws an error that
import NextAuth from "next-auth";
import authConfig from "./auth.config";
import { apiAuthPrefix, authRoutes, DEFAULT_LOGIN_REDIRECT, publicRoutes } from "./routes";
const { auth } = NextAuth(authConfig);
export default auth(async function middleware(req) {
const { nextUrl } = req;
const isSignedIn = !!req.auth;
const isApiAuthRoute = nextUrl.pathname.startsWith(apiAuthPrefix);
const isPublicRoute = publicRoutes.includes(nextUrl.pathname);
const isAuthRoute = authRoutes.includes(nextUrl.pathname);
if (isApiAuthRoute) {
return;
}
if (isAuthRoute) {
if (isSignedIn) {
return Response.redirect(new URL(DEFAULT_LOGIN_REDIRECT, nextUrl));
}
return;
}
if (!isSignedIn && !isPublicRoute) {
return Response.redirect(new URL("/auth/sign-in", nextUrl));
}
return;
});
export const config = {
matcher: ["/((?!.+\\.[\\w]+$|_next).*)", "/", "/(api|trpc)(.*)"],
};This code throws an error that
mongoose.models.schools is undefined: import { SchoolDataSchema } from "@/schemas/mongoose";
import mongoose from "mongoose";
export const SchoolsModel = mongoose.models.schools || mongoose.model("schools", SchoolDataSchema);