У меня есть критическая проблема в моем приложении NextJS, из-за которой все запросы к моим API-маршрутам истекают в рабочей среде. До недавнего времени оно работало отлично, но теперь мое приложение непригодно для использования (за исключением статической целевой страницы). Он отлично работает в моей локальной среде.
Я использую NextJS 14.0.1 с App Router; МонгоДБ + Мангуст
Вот журналы по времени из простой конечной точки /api/lead (создайте интерес в БД)
// app/api/leads/route.js
import { NextResponse } from "next/server";
import connectMongo from "@/libs/mongoose";
import Lead from "@/models/Lead";
export async function POST(req) {
console.time("MongoDB Connection");
await connectMongo();
console.timeEnd("MongoDB Connection");
console.time("Request JSON Parsing");
const body = await req.json();
console.timeEnd("Request JSON Parsing");
if (!body.email) {
return NextResponse.json({ error: "Email is required" }, { status: 400 });
}
try {
console.time("Finding Lead");
const lead = await Lead.findOne({ email: body.email });
console.timeEnd("Finding Lead");
if (!lead) {
console.time("Creating Lead");
await Lead.create({ email: body.email });
console.timeEnd("Creating Lead");
}
console.time("Sending Response");
const response = NextResponse.json({});
console.timeEnd("Sending Response");
return response;
} catch (e) {
console.error("Database operation failed", e);
console.time("Sending Error Response");
const errorResponse = NextResponse.json(
{ error: e.message },
{ status: 500 }
);
console.timeEnd("Sending Error Response");
return errorResponse;
}
}
При получении этого сообщения через почтальона мне все равно требуется > 10 секунд, чтобы получить ответ. Таймаут по умолчанию в Netlify/Vercel происходит через 10 секунд.
В консоли браузера ошибок нет, проверка запроса на вкладке «Сеть» тоже не помогает.
Что я сделал до сих пор:
Есть идеи, в чем здесь может быть проблема? У меня закончились идеи.
Редактировать: Вот дополнительный журнал по времени
🤔 А знаете ли вы, что...
MongoDB обладает активным сообществом разработчиков и богатой документацией...
Изучив множество возможных проблем, мне удалось устранить ошибку, обновив все мои зависимости и удалив Posthog. Похоже, у библиотеки возникла проблема с одной из зависимостей. Не знаю, почему ошибка привела только к сбою приложения в рабочей среде, но ладно. Надеюсь, это сэкономит кому-то еще несколько часов в будущем.