I'm making my first next js application and im facing problems with the rest api, in this moment i have /app/api/isWorking/route.ts, this route countain this simple test api:
import type { NextApiRequest, NextApiResponse } from "next";
export async function GET(req: NextApiRequest, res: NextApiResponse) {
res.status(200).json({ message: "working" });
}
and i call this api in app/account/page.tsx
"use client";
export default function Account() {
const testApi = () => {
fetch("/api/isWorking")
.then((response) => response.json())
.then((data) => {
console.log(data.message);
})
.catch((error) => {
console.error("Error fetching data: " + error);
});
};
return (
<div>
<button onClick={testApi} className="">
test api
</button>
</div>
);
}
and it's giving me this error:
- error TypeError: res.status is not a function
at GET (webpack-internal:///(rsc)/./src/app/api/isWorking/route.ts:6:9)
at eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:254:43)
at eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js:111:36)
at NoopContextManager.with (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js:360:30)
at ContextAPI.with (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js:30:58)
at NoopTracer.startActiveSpan (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js:953:34)
at ProxyTracer.startActiveSpan (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js:993:36)
at eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js:100:107)
at NoopContextManager.with (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js:360:30)
at ContextAPI.with (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js:30:58)
at NextTracerImpl.trace (webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js:100:32)
at eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:242:53)
at AsyncLocalStorage.run (node:async_hooks:346:14)
at Object.wrap (webpack-internal:///(rsc)/./node_modules/next/dist/server/async-storage/static-generation-async-storage-wrapper.js:42:24)
at eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:196:97)
at AsyncLocalStorage.run (node:async_hooks:346:14)
at Object.wrap (webpack-internal:///(rsc)/./node_modules/next/dist/server/async-storage/request-async-storage-wrapper.js:82:24)
at eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:195:75)
at AsyncLocalStorage.run (node:async_hooks:346:14)
at AppRouteRouteModule.execute (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:192:56)
at AppRouteRouteModule.handle (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:315:41)
I'm using node 20.6.1
I've tried to search this error but it doesn't seem like anyone is having this issue
Sir, here you go! Please update your /app/api/isWorking/route.ts
import { NextResponse, NextRequest } from "next/server";
export async function GET(req: NextRequest) {
const result = {
message: "working",
};
return NextResponse.json(result, {
status: 200,
});
}