Tartalomjegyzék
Típusbiztos URL-rövidítő létrehozása NodeJS-ben NestJS-sel
Bevezetés
A rövid URL-címek elengedhetetlen eszközök a hosszú és bonyolult URL-címek egyszerűsítése és megosztása érdekében. Azonban a hagyományos URL-rövidítő szolgáltatások, mint például a Bitly és a TinyURL, nem mindig megbízhatóak, és reklámokat vagy rosszindulatú programokat szúrhatnak be a rövidített URL-ekbe.
Ezért szükség van típusbiztos, megbízható és testreszabható URL-rövidítő megoldásokra. A NestJS egy népszerű NodeJS keretrendszer, amely kiváló alapot biztosít a típusbiztos és skaláris alkalmazások létrehozásához. Ebben a cikkben végigvezetjük Önt, hogyan hozhat létre egy típusbiztos URL-rövidítőt NestJS-sel.
Megvalósítás
1. Projekt létrehozása és beállítása
Kezdje azzal, hogy létrehoz egy új NestJS projektet az alábbi paranccsal:
bash
nest new my-url-shortener
A projekt létrehozása után telepítse a szükséges csomagokat:
bash
npm install --save uuid
2. URL rövidítő modul létrehozása
Létrehozunk egy urlShortener
modult, amely a rövidítő logikát fogja tartalmazni. Hozzon létre egy url-shortener.module.ts
fájlt a src
könyvtárban, és adja hozzá a következő kódot:
typescript
import { Module } from '@nestjs/common';
import { UrlShortenerService } from './url-shortener.service';
import { UrlShortenerController } from './url-shortener.controller';
@Module({
providers: [UrlShortenerService],
controllers: [UrlShortenerController],
})
export class UrlShortenerModule {}
3. URL rövidítő szolgáltatás létrehozása
A url-shortener.service.ts
fájlban hozzon létre egy UrlShortenerService
osztályt:
typescript
import { Injectable } from '@nestjs/common';
import { v4 as uuid } from 'uuid';
@Injectable()
export class UrlShortenerService {
private readonly shortUrls = new Map<string, string>();
shortenUrl(originalUrl: string): string {
const shortUrl = uuid();
this.shortUrls.set(shortUrl, originalUrl);
return shortUrl;
}
getOriginalUrl(shortUrl: string): string | undefined {
return this.shortUrls.get(shortUrl);
}
}
4. URL rövidítő vezérlő létrehozása
A url-shortener.controller.ts
fájlban hozzon létre egy UrlShortenerController
osztályt:
typescript
import { Controller, Get, Post, Param, Body } from '@nestjs/common';
import { UrlShortenerService } from './url-shortener.service';
@Controller('api/url-shortener')
export class UrlShortenerController {
constructor(private readonly urlShortenerService: UrlShortenerService) {}
@Post()
shortenUrl(@Body('originalUrl') originalUrl: string): string {
return this.urlShortenerService.shortenUrl(originalUrl);
}
@Get('/:shortUrl')
getOriginalUrl(@Param('shortUrl') shortUrl: string): string | undefined {
return this.urlShortenerService.getOriginalUrl(shortUrl);
}
}
5. App modul módosítása
A main.ts
fájlban importálja a UrlShortenerModule
modult és adja hozzá a imports
tömbhöz:
typescript
import { UrlShortenerModule } from './url-shortener/url-shortener.module';
@Module({
imports: [UrlShortenerModule],
})
export class AppModule {}
6. Alkalmazás futtatása
Futassa az alkalmazást a következő paranccsal:
bash
npm run start
Az alkalmazás most a 3000
-es porton fog futni.
Konfiguráció
Az alkalmazás konfigurálható a .env
fájlban. Hozzon létre egy .env
fájlt a projekt gyökérkönyvtárában, és adja hozzá a következőket:
URL_SHORTENER_BASE_URL=http://localhost:3000
Ez a beállítás határozza meg a rövidített URL-ek alapcímét.
Használat
URL rövidítése
Ehhez tegyen egy POST kérést az /api/url-shortener
végpontra, és adja meg az eredeti URL-t a body
-ban:
json
{
"originalUrl": "https://example.com"
}
A válasz egy rövidített URL lesz:
json
"http://localhost:3000/23kjn4"
Eredeti URL lekérése
Ehhez tegyen egy GET kérést az /api/url-shortener/{shortUrl}
végpontra, ahol a {shortUrl}
a rövidített URL:
json
"https://example.com"
Következtetés
Ebben a cikkben megtanultuk, hogyan hozzunk létre egy típusbiztos URL-rövidítőt NestJS-sel. Ezt a megoldást különféle alkalmazásokban használhatja, például link rövidítésre, URL-ek nyomon követésére és egyéni címsor létrehozására. A NestJS típusbiztos rendszere biztosítja az alkalmazás megbízhatóságát és karbantarthatóságát.
Gyakran Ismételt Kérdések (GYIK)
1. Mi a különbség a hagyományos URL-rövidítő szolgáltatások és a saját URL-rövidítő megoldásom között?
A hagyományos URL-rövidítő szolgáltatások gyakran reklámokat és rosszindulatú programokat szúrnak be a rövidített URL-ekbe. A saját URL-rövidítő megoldásod teljes mértékben az irányításod alatt áll, így biztos lehetsz benne, hogy a rövidített URL-ek biztonságosak és megbízhatóak.
2. Használhatom ezt az URL-rövidítőt nagy forgalmú alkalmazásokhoz?
Igen, ez az URL-rövidítő úgy lett megtervezve, hogy kezelje a nagy forgalmú alkalmazásokat. A NestJS keretrendszer skálázható és megbízható, így biztos lehetsz benne, hogy az alkalmazásod sokáig fog működni.
3. Hogyan tudom testreszabni a rövidített URL-eket?
A rövidített URL-ek testreszabhatók a .env
fájlban található URL_SHORTENER_BASE_URL
beállítással. Ez lehetővé teszi, hogy a rövidített URL-ekhez egyéni domaint használj.
4. Támogatja ez az URL-rövidítő a régiók és országok geolokációját?
Jelenleg ez az URL-rövidítő nem támogatja a régiók és országok geolokációját.
5. Van lehetőség a rövidített URL-ek nyomon követésére?
Jelenleg ez az URL-rövidítő nem támogatja a rövidített URL-ek nyomon követését.
6. Támogatja-e ez az URL-rövidítő a több felhasználós hozzáférést?
Jelenleg ez az URL-rövidítő nem támogatja a több felhasználós hozzáférést.
7. Van-e mód arra, hogy egyedi lejáratokat állítsak be a rövidített URL-ekhez?
Jelenleg ez az URL-rövidítő nem támogatja a rövidített URL-ek egyedi lejáratának beállítását.
8. Léteznek-e más csomagok, amelyek használatával javíthatom ezt az URL-rövidítő megoldást?
Igen, itt van néhány csomag, amelyet használhatsz: