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:
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.
Hozzunk létre egy Node.js projektet:
mkdir api cd api npm init -y
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:
NAME=Barbi CITY=Szeged APP_PORT=8000
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:
import dotenv from 'dotenv' dotenv.config({ debug: true, path: './config/.env' }); console.log(process.env.NAME); console.log(process.env.CITY);
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:
{ "name": "Barbi", "city": "Szeged", "app": { "port": 3000 } }
Használjuk a beállításokat:
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:
Esetleg:
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)
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:
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:
{ "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.