Backend kodeeksempler Flashcards
CONTROL LIMIT
export const controlLimitGetSchema = z.object({
sheet_type: z.nativeEnum(SheetType),
});
export type ControlLimitGet = z.infer<typeof>;</typeof>
Denne kode bruger Zod til at definere et JSON-schema, der specificerer, at et objekt skal have et felt kaldet sheet_type, hvis værdi skal være en gyldig SheetType.
Derefter oprettes en TypeScript-type der afspejler dette schema.
const get = async (req: Request, res: Response) => {
try {
const params = controlLimitGetSchema.parse(req.params);
const controlLimit = await ControlLimit.findAll({ where: { sheet_type: params.sheet_type, }, order: [['id', 'ASC']], });
Denne funktion håndterer en GET-request, hvor den først validerer parametrene fra URL’en.
Derefter hente den alle rækker fra databasetabellen ControlLimit, hvor sheet_type matcher værdien fra de validerede parametre.
Resultatet af requestet er sorteret efter id i stigende rækkefølge.
export const controlLimitBodyPostSchema = z.array(
z.object({
id: z.number(),
name: z.string(),
value: z.number(),
color: z.string(),
}),
);
export type ControlLimitPostBody = z.infer<typeof>;</typeof>
Denne kode bruger Zod til at definere et JSON-schema for et array af objekter og opretter derefter en TypeScript-type, der reflekterer dette schema.
const post = async (req: Request, res: Response) => {
try {
const limits = controlLimitBodyPostSchema.parse(req.body);
const { sheet_type } = controlLimitParamsPostSchema.parse(req.params);
await ControlLimit.destroy({ where: { sheetType: sheet_type, }, }); const promises = limits.map(async limit => ControlLimit.upsert({ ...limit, sheetType: sheet_type }), ); await Promise.all(promises); res.send( await ControlLimit.findAll({ where: { sheetType: sheet_type }, order: [['id', 'ASC']], }), );
Denne kode opdaterer kontrolgrænser i databasen ved at slette eksisterende data og indsætte nye data baseret på det modtagne request.
Resultatet er en opdateret liste af kontrolgrænser, der sendes som svar på requestet.
FILE RECEIVER