From c123b5f83a10c01e726820548e662c4d8fe1bf30 Mon Sep 17 00:00:00 2001 From: Ilango Date: Tue, 27 Feb 2024 10:32:29 +0530 Subject: [PATCH] Prevent server from crashing when link is empty or invalid --- packages/server/src/index.ts | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index aef8494a..35ff1ddc 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1150,18 +1150,22 @@ export class App { // ---------------------------------------- this.app.get('/api/v1/fetch-links', async (req: Request, res: Response) => { - const url = decodeURIComponent(req.query.url as string) - const relativeLinksMethod = req.query.relativeLinksMethod as string - if (!relativeLinksMethod) { - return res.status(500).send('Please choose a Relative Links Method in Additional Parameters.') + try { + const url = decodeURIComponent(req.query.url as string) + const relativeLinksMethod = req.query.relativeLinksMethod as string + if (!relativeLinksMethod) { + return res.status(500).send('Please choose a Relative Links Method in Additional Parameters.') + } + + const limit = parseInt(req.query.limit as string) + if (process.env.DEBUG === 'true') console.info(`Start ${relativeLinksMethod}`) + const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, limit) : await xmlScrape(url, limit) + if (process.env.DEBUG === 'true') console.info(`Finish ${relativeLinksMethod}`) + + res.json({ status: 'OK', links }) + } catch (e: any) { + return res.status(500).send('Could not fetch links from the URL.') } - - const limit = parseInt(req.query.limit as string) - if (process.env.DEBUG === 'true') console.info(`Start ${relativeLinksMethod}`) - const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, limit) : await xmlScrape(url, limit) - if (process.env.DEBUG === 'true') console.info(`Finish ${relativeLinksMethod}`) - - res.json({ status: 'OK', links }) }) // ----------------------------------------