search.js 619 B

123456789101112131415161718192021222324
  1. import { Router } from "express";
  2. import { z } from "zod";
  3. import { searchDocs } from "../services/searchService.js";
  4. import { requireUser } from "../middleware/requireUser.js";
  5. export const searchRouter = Router();
  6. const searchBodySchema = z.object({
  7. query: z.string().min(1),
  8. topK: z.number().int().positive().optional()
  9. });
  10. searchRouter.post("/", requireUser, async (req, res, next) => {
  11. try {
  12. const body = searchBodySchema.parse(req.body);
  13. const results = await searchDocs({
  14. query: body.query,
  15. topK: body.topK
  16. });
  17. res.json({ results });
  18. } catch (err) {
  19. next(err);
  20. }
  21. });