Nuxt3(Nitro)환경에 Redis, FileStorage 연동
카테고리 | 기술 |
---|---|
태그 | |
수정일 | Aug 3, 2024 |
작성일 | Jan 15, 2024 |
NoSQL 기반 목업 API 구축을 위해 Nitro를 이용하여 Redis, FileSystem 을 연동해보았다.
Redis, FileSystem 이 외에도 azure, cloudflare, mongoDB 등등 다양한 드라이버를 제공하여 간단하게 연동할 수 있다.
Nuxt3에서는 ~/server/plugins/
폴더 내 파일들을 자동으로 호출하여 주어 편리하다.
redis
-
DB 정보 환경 설정
# .env REDIS_HOST = "127.0.0.1" REDIS_PORT = 6379 REDIS_DB = 0 REDIS_USERNAME = [USERNAME] REDIS_PASSWORD = [PASSWORD]
-
Redis Driver를 Nitro에 등록
// ~/server/plugins/redis.ts import redisDriver from 'unstorage/drivers/redis'; export default defineNitroPlugin(() => { const storage = useStorage(); // Dynamically pass in credentials from runtime configuration, or other sources const driver = redisDriver({ base: '', host: useRuntimeConfig().redis.host, port: parseInt(useRuntimeConfig().redis.port) as number, username: process.env.REDIS_USERNAME, password: process.env.REDIS_PASSWORD, db: (process.env.REDIS_DB || 0) as number }); // Mount driver storage.mount('redis', driver); });
-
실제 사용 시에는 nitroPack에서 자동 로드 된 useStorage를 이용하여 DB 핸들링을 해주면 된다.
// ~/server/api/index.ts export default defineEventHandler(async (event) => { const storage = useStorage('redis'); await storage.setItem('dashboard', 'item'); });
Filesystem
-
DB 정보 환경 설정
# .env FS_BASE = "./server/db"
-
FS Driver 를 Nitro에 등록
// ~/server/plugins/storage.ts import fsDriver from 'unstorage/drivers/fs'; export default defineNitroPlugin(() => { const storage = useStorage(); const driver = fsDriver({ base: process.env.FS_BASE, watchOptions: {} }); // Mount driver storage.mount('fs', driver); });
-
실제 사용 시에는 nitroPack에서 자동 로드 된 useStorage를 이용하여 DB 핸들링을 해주면 된다.
export default defineEventHandler(async (event) => { const storage = useStorage('fs'); const data = await storage.getItem('dashboard'); return data; });
-
실제
~/server/db
를 접근하면 파일이 변경되는 것을 확인 할 수 있다.
Previous Jan 3, 2024
« Github Pages Jekyll 에서 Katex 적용
« Github Pages Jekyll 에서 Katex 적용
Jan 24, 2024 Next
ADsP 1과목. 데이터의 이해 »
ADsP 1과목. 데이터의 이해 »