< Express

Beállítások tárolása

Szerző: Sallai András

Copyright © 2025, Sallai András

Licenc: CC Attribution-Share Alike 4.0 International

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:

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);

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:

{ "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:

'../../config/default.json'

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)

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:

{ "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.