I've declared an API route for various authentication methods, but upon querying it I always get the same error (even if using the decorator for one route, such as @Post()
HTTP Request
{
"statusCode": 500,
"message": "An unknown error occurred.",
"errors": [
"An unknown error occurred."
],
"stack": "TypeError: Cannot read properties of undefined (reading 'length')\n at D:\\Programming\\GitHub\\momischool\\node_modules\\next-api-decorators\\dist\\internals\\handler.js:45:50\n at Array.map (<anonymous>)\n at Auth.runMainLayer (D:\\Programming\\GitHub\\momischool\\node_modules\\next-api-decorators\\dist\\internals\\handler.js:41:62)\n at descriptor.value (D:\\Programming\\GitHub\\momischool\\node_modules\\next-api-decorators\\dist\\internals\\handler.js:105:32)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Object.apiResolver (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\api-utils\\node.js:363:9)\n at async DevServer.runApi (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\next-server.js:487:9)\n at async Object.fn (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\next-server.js:749:37)\n at async Router.execute (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\router.js:253:36)\n at async DevServer.run (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\base-server.js:384:29)\n at async DevServer.run (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\dev\\next-dev-server.js:741:20)\n at async DevServer.handleRequest (D:\\Programming\\GitHub\\momischool\\node_modules\\next\\dist\\server\\base-server.js:322:20)"
}
api/auth/[[...params]].ts
import { Post, Body, HttpCode, ValidationPipe, InternalServerErrorException, createHandler } from "next-api-decorators";
import { UserDto } from "../../../src/lib/dto/user.dto";
import { connectToMongo } from "../../../src/lib/mongo";
import { registerUser } from "../../../src/lib/repo/user.repo";
import logger from "../../../src/utils/logger";
class Auth {
@Post('/register')
@HttpCode(201)
public async registerNewUser(@Body(ValidationPipe) body: UserDto) {
// Connect to the database.
try {
await connectToMongo();
} catch (e) {
logger.error(`Failed to establish connection to MongoDb: ${e}`);
throw new InternalServerErrorException(e);
}
try {
// Instance the new user.
const doc = await registerUser(body);
return doc;
} catch (e) {
logger.error(`Failed to register a new user: ${e}`);
throw new InternalServerErrorException(e);
}
}
}
export default createHandler(Auth);
As for package versions here's what I'm using currently.
I've declared an API route for various authentication methods, but upon querying it I always get the same error (even if using the decorator for one route, such as
@Post()
HTTP Request
api/auth/[[...params]].ts
As for package versions here's what I'm using currently.