all
Business
data science
design
development
our journey
Strategy Pattern
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Ricardo Henriques

Februar 23, 2024

Min Read

Node.js Admin Panels - Strapi og Express Admin gennemgået

På det seneste har jeg forsket efter en hurtig og enkel måde at udvikle et back office i JavaScript på, uden at skulle skrive alt fra bunden. Under min forskning fandt jeg to gode muligheder - Strapie og Ekspresadministrator.

Når vi ser på dem på forhånd, kan vi se, at den største forskel med hensyn til build-stakken er, at Strapi admin-grænsefladen er bygget med React JS. Hver mulighed fortjener dog meget mere grundig analyse for at lære deres særlige forhold at kende. Jeg vil benytte denne chance for også at give lidt information om, hvordan man konfigurerer hver og får dem til at køre problemfrit på ingen tid.

blue arrow to the left
Imaginary Cloud logo

Ekspresadministrator

Express Admin UI (www.github.com/simov/express-admin)

Express Admin giver dig mulighed for at oprette forbindelse til MySQL-, MariaDB-, SQLite- og PostgreSQL-databaser, men vær opmærksom på, at det er relationelt database-orienteret. Express Admin-konfigurationer udføres via JSON manuelt oprettede filer.

Dets vigtigste funktioner er:
• SQL-tabelrelationer - du kan definere alle typer tabelrelationer;
• Internationalisering er mulig;
• Evne til at oprette brugerdefinerede visninger og begivenheder;
• Alle former for biblioteker og kontroller på browsersiden;
• Tillader temaer (Bootswatch).

Sådan får du Express Admin i gang

Jeg antager, at du allerede har både Node.js og NPM installeret på forhånd (jeg vil også foreslå brugen af NVM her):

Sådan får du modulet

$ [sudo] npm installation [-g] express-admin
# Kun PostgreSQL: kør dette inde i express-admin-mappen
$ npm installer pg @2 .8.2
# Kun SQLite: kør dette inde i express-admin-mappen
$ npm installer sqlite3 @2 .2.0

Sådan opretter du et projekt

administratorsti/til/config/dir

Kørsel af denne kommando vil bede om databasetype, port, bruger, databasenavn, adgangskode, administratorbruger og administratoradgangskode. Bemærk, at Admin Express kræver, at du har en eksisterende database med data.

Express Admin building project

Som du kan bemærke, er din admin-grænseflade nu i gang! Bare gå til din browser og få adgang til lokal vært: 3000.

Express Admin Login

Log ind for at komme ind på hovedskærmen:

Express Admin Main screen

Min database har kun en tabel (produkter), men herfra kan du tilføje nye poster, slette dem eller opdatere de eksisterende. Du har en fuld råvare.

Express Admin Entity screen

Express Admin er i stand til at læse dit skema og kortlægge det til en JSON-konfigurationsfil. Dette er en del af settings.json-filen, der var

Genereret af admin:

Express Admin settings.json configurations

Som du kan se, er alle tabelfelterne defineret her. Sådan bygger Express Admin crud for hver tabel. Hvad angår databaseadgangskonfigurationerne, gemmes de inde i config.json.

Hvis du vil vide mere om Express Admin-konfigurationen, skal du bare gå til denne side og følg de anførte trin.

Express Admin hovedfunktioner

SQL-relationer

Express Admin giver dig også mulighed for at konfigurere relationer mellem tabeller for automatisk at oprette de korrekte felter. Du kan have en til mange, mange til mange, mange til en og en til en forhold. Bare gå til settings.json og ændre det efter dine behov. Følgende billede viser et eksempel på en til mange relationer:


For at vide mere om forhold skal du bare scanne igennem her.

Tilpasning (visninger for eksempel)

Ja, det er muligt, da du har en custom.json-fil, hvor du kan konfigurere din brugerdefinerede kode:


Opret bare din brugerdefinerede app.js og en visningsfil. For at vide mere om dette skal du bare følge denne side.

Mine tanker om Express Admin

Hvis du kun har brug for en admin-grænseflade med CRUD-funktionaliteter og et vist niveau af tilpasning, er Express Admin en god løsning. Som vi så før, tillader det forhold mellem tabeller, understøtter brugerdefinerede visninger og fungerer med flere databaser (kun relationelle - MySQL, MariaDB, SQLite og PostgreSQL-databaser). Efter min mening er Express Admin en god mulighed at vælge på grund af sin enkelhed og tilpasning.

Der mangler yderligere tilpasninger til instrumentbrættet, men du kan altid forkle koden og ændre den efter dine behov.

blue arrow to the left
Imaginary Cloud logo

Strapie

Som du helt sikkert har bemærket, er Express Admin en god admin-grænseflade og meget god for hvad den står. Forestil dig nu, at du kunne have alle disse funktioner og også være i stand til at generere en API og andre funktioner såsom brugergodkendelse og godkendelse. Det ville være dejligt, ikke? Nå, det er muligt med Strapi!

Dernæst giver jeg dig et overblik over, hvordan Strapi fungerer, og hvordan du kommer i gang med det. For yderligere information tjek Strapi dokumentation.

Lad os starte med at installere Strapi:

npm installer strapi @alpha -g


Opret derefter et nyt projekt. Du bliver bedt om databasetype, databasenavn og adgangsdata.

strapi nyt my-projekt


Strapi building project

Før du starter projektet, skal du køre NPM-kørselsopsætningen. Så er du klar til at gå.

cd mit projekt
npm run opsætning
Strapi-start

Hvis du får adgang localhost: 1337/admin du skal kunne se skærmbilledet til oprettelse af administratorbrugere:

Strapi Login

Opret bare din administratorbruger, og bagefter vil du blive omdirigeret til instrumentbrættet:

Strapi Main Screen

Strapi Hovedfunktioner:

Oprettelse af indhold (indholdstyper)

Lad os springe lige til de gode ting og dække, hvordan du kan oprette indhold. Du kan enten bruge „Content Type Builder“ i menuen til venstre eller generatorer. Jeg forklarer her, hvordan du bruger indholdstypebyggeren, men glem ikke også at prøve generatorerne.

Indholdstyper er simpelthen de modeller (og API), der er forbundet til din MySQL-database, der bruges af Strapi for at generere CRUD-skærme. Så lad os tilføje en ny indholdstype:

Strapi Add new content type

Hvad angår felterne, når du klikker på tilføj nyt felt, får du dette:

Strapi Field type selection

Strapi giver dig mulighed for at vælge datatype, som består i en af dens mest interessante funktioner. Lad os tilføje 2 felter (beskrivelse og pris) og klik på Gem. Det er her, tingene bliver virkelig interessante. Bare se på de genererede filer:

Strapi API routing

Fantastisk, er det ikke? Strapi har netop genereret tjenesten, modellen og controlleren til dit API, og du kan selvfølgelig altid tilpasse

dem efter dine behov.

En anden interessant funktion er evnen til at skabe relationer inden for indholdstyperne. Lad os antage endnu en indholdstype (kategori), som vi vil knytte til produktet. Når du tilføjer et felt, vælger vi relationstype og derefter:

Strapi Relating content type

Du er i stand til at vælge mellem en til en, en til mange og mange til mange relationstyper. Så hvis du tilføjer et produkt, vil du se, at der vises et kategorifelt.

Strapi Showing new relation with content type

Opbygning af API'er

API'en genereres automatisk, og du kan ændre koden efter dine behov.

Strapi API code generated

Roller og tilladelser

For at give offentligheden adgang til API'en kan du indstille roller og tilladelser, hvilket er en anden cool funktion på Strapi. Det kommer ud af boksen med et plugin til styring af roller /tilladelser.

Strapi Roles and permissions

For at tillade offentlig adgang til API'en ændrer du rollen:

Strapi Roles and permissions changing

Mine tanker om Strapi

Hvis du har brug for en admin-grænseflade, men du også ønsker at opbygge og betjene en API, er Strapi et glimrende valg for dig. Strapis indholdstypegenerator er fremragende og vil opfylde næsten ethvert behov, du måtte have. Hvis det ikke gør det, kan du altid udvikle dine egne plugins. En anden stor funktion er rollerne/tilladelser.

Desværre er Strapi stadig under udvikling og præsenterer nogle fejl ved brug, men samfundet vokser, og det er meget aktivt på GitHub, så vi forventer altid forbedringer på det.

Oversigt

Afhængigt af hvad dine krav er, kan du vælge Express Admin, hvis du bare vil integrere en admin-grænseflade i din app for at administrere dine data (enkle CRUD-grænseflader) og et vist niveau af tilpasning.

Hvis dine behov inkluderer opbygning af en API, roller og brugertilladelser, så bør Strapi bestemt være dit valg.

Så vi kan sige, at begge muligheder er fremragende, og valget skal ske i henhold til dine krav.

Ready for a UX Audit? Book a free call

Fandt du denne artikel interessant? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Ricardo Henriques
Ricardo Henriques

Udvikler @Imaginary Cloud, dedikeret til at skabe enestående softwareløsninger, forpligtet til innovation og omfavne banebrydende teknologier.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon