Tartalomjegyzék
Beállítások tárolása
- Szerző: Sallai András
- Copyright © 2025, Sallai András
- Web: https://szit.hu
Bevezetés
Az API alkalmazás beállításait tárolhatjuk .env vagy valamilyen JSON fájlban. A .env fájl helyet használhatunk más nevet is, de ez egy általánosan használt fájlnév. A JSON fájl valamilyen .json kiterjesztésű fájl:
- config.json
- default.json
- default_config.json
- config/default.json
- stb.
A .env fájlban szimpla változóként tartjuk nyilván a beállításokat, a JSON fájlokban értelemszerűen JSON formátumban.
Mit tárolunk ilyen fájlokban? Az alkalmazáshoz tartozó portbeállítás, verziószám, adatbázis adatok stb.
Node.js projekt létrehozása
Hozzunk létre egy Node.js projektet:
mkdir api cd api npm init -y
.env
Szükségünk van a dotenv csomagra a .env fájl tartalmának olvasásához. Telepítsük:
npm install dotenv
Készítsünk egy .env fájlt a projekt gyökérkönyvtárában, majd vegyünk fel benne néhány változót:
- .env
NAME=Barbi CITY=Szeged APP_PORT=8000
- index.js
import dotenv from 'dotenv' dotenv.config(); console.log(process.env.NAME); console.log(process.env.CITY);
A config() függvény paraméterezhető is. Debug és útvonal beállítása:
- index.js
import dotenv from 'dotenv' dotenv.config({ debug: true, path: './config/.env' }); console.log(process.env.NAME); console.log(process.env.CITY);
config.json
A beállítások tárolhatók JSON fájlban is. A fájl neve tetszőleges. Lehet config vagy default, a kiterjesztést viszont célszerű .json-ra állítani. Egy példa a tartalomra:
- config.json
{ "name": "Barbi", "city": "Szeged", "app": { "port": 3000 } }
Használjuk a beállításokat:
- index.js
import { readFileSync } from 'fs' const fileUrl = new URL('config.json', import.meta.url) const config = JSON.parse(readFileSync(fileUrl, 'utf-8')) console.log(config.name) console.log(config.city)
Az URL osztály kihagyható, ha config.json fájl egy könyvtárban van az index.js állománnyal. Itt azért alkalmaztuk, mert ez működik alkönyvtárak esetén is, például:
- '../../config/default.json'
Esetleg:
- index.js
import { readFile } from 'fs/promises' const fileUrl = new URL('config.json', import.meta.url) const config = JSON.parse(await readFile(fileUrl, 'utf-8')) console.log(config.name) console.log(config.city) console.log(config.app.port)
npm create sip
Ha a sip paranccsal készítjük el a projektet a beállítások alapértelmezetten egy JSON fájlban a következő helyen találhatók:
- config/default.json
Hozzunk létre kísérletként egy alap nevű projektet:
npm create sip@latest
A parancs rákérdez a projekt nevére, majd válasszuk a projekt típusának a Express API lehetőséget.
Az elkészített default.json fájl tartalma:
- config/default.json
{ "app": { "port": 8000, "key": "", "log": "console.log" }, "db": { "dialect": "sqlite", "host": "127.0.0.1", "name": "", "user": "", "pass": "", "path": ":memory:" } }
A fájlt nyugodtan szerkeszthetjük. Az eredeti tartalmat megtaláljuk a default.json.example fájlban.