Ինչպես ստեղծել պրոֆեսիոնալ NodeJS նախագիծ
Արտադրության մակարդակի հավելվածների համար մեզ անհրաժեշտ է աջակցություն բազմաթիվ միջավայրերի համար: Օրինակ, դուք պետք է օգտագործեք տարբեր տվյալների բազաներ տարբեր միջավայրերի համար: Կան բազմաթիվ կիրառումներ, և սա դրանցից միայն մեկն է:
Այսօր մենք կտեսնենք, թե ինչպես կարող ենք կառավարել բազմաթիվ միջավայրեր NodeJS հավելվածում:
Նախքան սկսելը…
Ես ստեղծել եմ պրոֆեսիոնալ կաթսա ExpressJS-ով և Typescript-ով: Այս հոդվածը այս շարքի մի մասն է։ Ստորև կարող եք գտնել բոլոր հոդվածները:
* Creating a ExpressJS + Typescript Boilerplate * How to setup Linter and Formatter for NodeJS * How to handle multiple environments in NodeJS * Error Handling in NodeJS * Request validation in NodeJS * Using Docker Professionally with NodeJS * Using Docker for Local Development in NodeJS * Logging in NodeJS * Kubernetes with NodeJS
Եկեք սկսենք!
Ավանդական ճանապարհ
Շրջակա միջավայրի փոփոխականներ օգտագործելու ամենահեշտ ձևը մեր package.json ֆայլի օգտագործումն է: Եկեք ստեղծենք երկու հրաման՝ երկու միջավայր ցուցադրելու համար:
"scripts": {
"start-dev": "PORT=3000 ts-node-dev --respawn src/index.ts",
"start-prod": "PORT=4000 ts-node-dev --respawn src/index.ts"
}
Մենք սահմանել ենք երկու հրաման. Զարգացման համար մենք սահմանել ենք start-dev
, որտեղ PORT փոփոխականը պետք է ունենա 3000 արժեք, իսկ prod
ի համար այն կլինի 4000:
Եթե մենք գործարկենք մեր հավելվածը
yarn start-dev
Դուք կստանաք հետևյալ հաղորդագրությունը.
Connected successfully on port 3000
իսկ գործարկման start-prod-ը ձեզ կտա
Connected successfully on port 4000
Այսպիսով, մենք հաջողությամբ դարձրել ենք մեր հավելվածը կարգավորելի:
Եկեք մեկ քայլ առաջ գնանք:
Իսկ եթե մեզ անհրաժեշտ լինի մեկ այլ փոփոխական, որը կփոխվի տարբեր միջավայրերում: Մենք կարող ենք մեկ այլ փոփոխական ավելացնել այդ տողի ներսում։
Այստեղ SOMETHING_ELSE
-ը հասանելի կլինի process.env.SOMETHING_ELSE
-ի միջոցով
Բայց իրական կյանքում մենք ունենք բազմաթիվ միջավայրեր, որոնք պետք է փոխվեն: Ինչպե՞ս ենք մենք դա կառավարում:
Եկեք ստեղծենք միջավայրի ֆայլ:
Շատ շրջակա միջավայրի փոփոխականներ կառավարելու համար մենք կարող ենք օգտագործել շրջակա միջավայրի ֆայլ: Գնացեք ձեր նախագիծը, ստեղծեք .env ֆայլ և տեղադրեք հետևյալը:
PORT=3000
SOMETHING_ELSE=dev
Իսկ միջավայրերը հեռացնել package.json հրամաններից։
"scripts": {
"start-dev": "ts-node-dev --respawn src/index.ts",
"start-prod": "ts-node-dev --respawn src/index.ts",
},
Եվ արի վազենք!
yarn start-dev
Սա կտա հետևյալ արդյունքը.
Connected successfully on port 5000
Հիմա դա տարօրինակ է: Քանի որ մենք պետք է տեսնենք 3000 որպես նավահանգիստ, բայց դա մեզ տալիս է 5000:
Պատճառն այն է, որ չնայած մենք ավելացրել ենք շրջակա միջավայրի փոփոխականները, NodeJS-ը դրանք ինքնաբերաբար չի կարդա։
Եկեք կարդանք մեր շրջակա միջավայրի փոփոխականները:
Մենք ունենք շատ տարածված փաթեթ՝ դա մեզ համար անելու համար: Անունը dotenv է
Եկեք նախ տեղադրենք դա:
yarn add dotenv
Եվ ներմուծեք այն մեր հավելվածի ներսում, ինչպես հետևյալը.
import "dotenv/config";
կամ այսպես
import dotenv from "dotenv";
const configuration: any = dotenv.config().parsed;
Եվ դա բավական է: Ձեզ անհրաժեշտ չէ որևէ այլ բան անել շրջակա միջավայրի ֆայլերը կարդալու համար: Այս փաթեթը փոփոխականները հասանելի կդարձնի մեր հավելվածի համար process.env-ի միջոցով
Դա փորձարկելու համար կարող եք վազել:
yarn start-dev
Եվ դուք նորից կտեսնեք, որ հավելվածը աշխատում է PORT 3000-ում:
Բազմաթիվ միջավայր
Եկեք պատրաստենք մեր հավելվածի արտադրությունը հիմա: Եկեք ստեղծենք երկու առանձին ֆայլ առանձին միջավայրերի համար:
Ստեղծեք ֆայլեր ըստ միջավայրի, ինչպիսիք են .env.development
և .env.production
Այժմ մենք պետք է բեռնենք ֆայլերը բեռնման ժամանակ: Windows միջավայրերը երբեմն բախվում են միջավայրերը բեռնելու հետ կապված խնդիրների հետ: Դրա մասին հոգալու համար եկեք տեղադրենք cross-env
անունով փաթեթ
yarn add -D cross-env
Այնուհետև ստեղծեք առանձին սցենարներ փաթեթ.json-ի ներսում գտնվողների համար
"dev": "cross-env NODE_ENV=development ts-node-dev --respawn src/index.ts",
"prod": "cross-env NODE_ENV=production ts-node-dev --respawn src/index.ts",
Այնուհետև փոփոխեք կազմաձևման ֆայլը հետևյալ կերպ.
Եվ մենք այժմ կարող ենք օգտագործել կոնֆիգուրացիան մեր հավելվածում ամենուր:
import Config from "./utils/Configuration";
console.log(Config.port);
վերջ Այժմ դուք կարող եք ունենալ այնքան միջավայր, որքան ցանկանում եք և հեշտությամբ կառավարել դրանք:
Վերջնական խոսքեր
Մի մոռացեք ավելացնել .env ֆայլերը ձեր .gitignore ֆայլերին: Հակառակ դեպքում, ձեր բոլոր գաղտնիքները կբացահայտվեն:
Բացեք ձեր .gitignore
ֆայլը և ավելացրեք հետևյալը
.env.development
.env.production
Ահա և վերջ։ Հաճելի հանգիստ անցկացրեք ձեր օրը :D
Want to Connect? You can reach out to me via LinkedIN or my Personal Website