node.js - Typescript: Zod förväntade en sträng, mottog undefined
zod ger följande fel 3 gånger när jag försöker skicka mina req.body-data till prisma orm (jag använder Insomnia):
ZodError: [
{
"code": "invalid_type",
"expected": "string",
"received": "undefined",
"path": [
"name"
],
"message": "Required"
},
det här är Prisma-klientmodellen:
model Client {
id String @id @default(uuid())
email String @unique
name String
password String
created_at DateTime @default(now())
updated_at DateTime @updatedAt
reviews ProductReview[] @relation("client")
adm Boolean @default(false)
@@map("clients")
}
det här är rutten:
const authController = new AuthController();
router.route('/register').post(authController.registerClient)
det här är controllern med funktionen registerClient, det är den som orsakar zod-felet:
export class AuthController {
async registerClient(req: Request, res: Response) {
const createClientBody = z.object({
name: z.string(),
email: z.string(),
password: z.string(),
});
const { name } = createClientBody.parse(req.body); // this lines
const { email } = createClientBody.parse(req.body); // this lines
const { password } = createClientBody.parse(req.body); // this lines
const response = await prisma.client.create({
data: {
name,
email,
password
},
});
return res.status(201).send({ response });
};
}
Svar #1
name: z.string().nullish(),Tillåter: sträng (valfri längd) eller null eller undefined.
https://zod.dev/?id=nullish