ExpressWebJs ist ein Node FrameWork mit ausdrucksstarker und organisierter Syntax, das auf allen wichtigen Betriebssystemen läuft. Es bietet den Ausgangspunkt für die Erstellung Ihres Node-Projekts, sodass Sie sich mehr auf die Entwicklung Ihrer großartigen Lösung konzentrieren können.
ExpressWebJs konzentriert sich auf die Bereitstellung von Entwicklererfahrung und leistungsstarken Funktionen wie Abhängigkeitsinjektion, Datenbankabstraktionsschicht für SQL und NOSQL, robustes Routing, Codestruktur, Anwendungskonfiguration, Tests und mehr.
Es gibt einige eingebaute Funktionen von ExpressWebJs
. Robustes Routing
. Konzentrieren Sie sich auf hohe Leistung
. Superhohe Testabdeckung
. HTTP-Helfer (Umleitung, Caching usw.)
. Unterstützung für SQL- und NOSQL-Datenbanken
. Gut organisiert und strukturiert.
. Unterstützt die Verwendung von Dependency Injection
. Unterstützt Websocket
. Hochgradig skalierbar
. Ereignisse und Zuhörer
. Warteschlangen
. Aufgabenplanung
Erstellen einer API für Mitarbeiterdatensätze mit ExpressWebJs
Bei Firma X haben wir viele Mitarbeiter. Wir werden gebeten, eine App zu erstellen, um unsere Mitarbeiterakte zu verwalten. Die Frontend-App wird mit Vuejs oder ReactJs erstellt. Es muss jedoch Daten aus einer Quelle ziehen und auch dorthin pushen. Wir brauchen eine API, die wir mit ExpressWebJs entwickeln werden.
Dafür benötigen wir unsere API:
. Holen Sie sich alle Mitarbeiter
. Holen Sie sich einen Mitarbeiter
. Neuen Mitarbeiter hinzufügen
. Mitarbeiterdatensatz bearbeiten
. Mitarbeiter löschen
Für die Endpunkte werden wir uns ansehen:
. GET /api/employees
. GET /api/employees/6
. POST /api/employees
. PATCH /api/employees/6
. LÖSCHEN Sie /api/employees/6
Als nächstes werden wir uns das Mitarbeiterattribut ansehen:
. Name
. Email
. Telefon
. Lage
. Land
. Zustand
Installieren Sie ExpressWebJs
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um ein neues Projekt mit ExpressWebJs zu erstellen:
npx expresswebcli new employeesApp
cd in Ihr neu erstelltes Projekt.
cd employeesApp
Führen Sie nun npm install
aus um alle Abhängigkeiten zu installieren.
Kopieren Sie example.env mit dem folgenden Befehl in die .env-Datei
cp example.env .env
Sobald dies erledigt ist, können Sie nun Ihre Datenbank in der .env-Datei konfigurieren.
Denken Sie daran:ExpressWebJs unterstützt sowohl SQL- als auch NOSQL-Datenbanken.
Für dieses Tutorial werden wir mit mysql db (sql database) arbeiten.
Führen Sie nun npm run dev
aus dem Projekt zu dienen. Gehen Sie zu Ihrem Browser.
Migration:
ExpressWebJs wird mit dem Maker-Befehl geliefert, der die Befehlszeilenschnittstelle darstellt. Maker befindet sich im Stammverzeichnis Ihrer Anwendung als Maker-Skript und bietet eine Reihe hilfreicher Befehle, die Sie beim Erstellen Ihrer Anwendung unterstützen können. Um eine Liste aller verfügbaren Maker-Befehle anzuzeigen, können Sie den Hilfebefehl verwenden:
node maker -h
Um die Migration und das Modell unserer Mitarbeiter zu erstellen, können wir das folgendermaßen tun:
node maker make-sql-model employees -m
-m
sagt Maker
um beim Erstellen unseres Modells auch eine Migration zu generieren.
Die neue Migration wird in Database/Migrations
platziert .
Jeder Migrationsdateiname enthält einen Zeitstempel, der es ExpressWebJs ermöglicht, die Reihenfolge der Migrationen zu bestimmen. Als Nächstes ändern wir die kürzlich erstellte Migration so, dass sie die Attribute enthält, die wir für die Tabelle „Employees“ benötigen.
Öffnen Sie die Migrationsdatei und ändern Sie sie wie folgt:
/**
* Migration layout file.
* Assign your table name to the tableName variable.
* Remember, it's always in plural
*/
let tableName = "employees";
exports.up = function (knex) {
return knex.schema.createTable(tableName, (table) => {
table.increments("id");
table.string("name").notNullable();
table.string("email").unique().notNullable();
table.string("phone").notNullable();
table.string("location").notNullable();
table.string("country").notNullable();
table.string("state").notNullable();
table.timestamps(true, true);
});
};
exports.down = function (knex) {
return knex.schema.dropTable(tableName);
};
Fahren Sie jetzt fort und führen Sie die Migration wie folgt aus:
node maker run-sql-migration
Überprüfen Sie Ihre Datenbank. Sie sollten jetzt den employees
haben und migrations
Tische vorhanden.
Modell
als wir den node maker make-sql-model employees
ausgeführt haben ExpressWebjs hat unser Modell im
-m App/Model
generiert Verzeichnis.
App/Model/Employees_model.js
"use strict";
const Model = require("@elucidate/Model");
class Employees extends Model {
static get tableName() {
return "employees";
}
}
module.exports = Employees;
Mitarbeiter-Controller einrichten
Um einen neuen Controller namens EmployeesController zu erstellen, verwenden Sie den Maker-Befehl für Controller:
node maker make-controller EmployeesController -r
wobei -r
weist Maker an, unseren Controller mit Ressourcenmethoden zu generieren.
Unser Controller wird in App/Http/Controller
generiert Verzeichnis
App/HTTP/Controller/MitarbeiterController:
"use strict";
class EmployeesController{
/**
* Display a listing of the resource.
*/
index = async (req, res, next) =>{
try{
//
}catch (error) {
return next(error);
}
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
create = async (req, res, next) => {
try{
//
}catch (error) {
return next(error);
}
}
/**
* Store a newly created resource in storage.
* @param Request
* @return Response
*/
store = async (req, res, next) => {
try{
//
}catch (error) {
return next(error);
}
}
/**
* Display the specified resource.
* @param Request
* @return Response
*/
show = async (req, res, next) => {
try{
//
}catch (error) {
return next(error);
}
}
/**
* Show the form for editing the specified resource.
* @param Request
* @return Response
*/
edit = async (req, res, next) => {
try{
//
}catch (error) {
return next(error);
}
}
/**
* Update the specified resource in storage.
* @param Request
* @return Response
*/
update = async (req, res, next) => {
try{
//
}catch (error) {
return next(error);
}
}
/**
* Remove the specified resource from storage.
*
* @param Request
* @return Response
*/
destroy = async (req, res, next) => {
try{
//
}catch (error) {
return next(error);
}
}
}
module.exports = EmployeesController;
Wir werden gleich unseren EmployeesController auffüllen.
Routen einrichten
Das Routing ist ziemlich einfach. Öffnen Sie Routes/api.js und ändern Sie es wie folgt:
"use strict";
const Route = require("@routerManager");
/*
|---------------------------------------------------------
| Api route
|---------------------------------------------------------
|
| Here is where you can register your application routes.
| These
| routes are loaded by the RouteProvider. Now create
| something great!
|
*/
Route.get("/", (req, res) => {
res.json({ Message: "Welcome To ExpressWebjs" });
});
Route.group("/employees", () => {
Route.get("/","EmployeesController@index");
Route.get("/:id", "EmployeesController@show");
Route.post("/", "EmployeesController@store");
Route.patch("/", "EmployeesController@update");
Route.delete("/:id", "EmployeesController@destroy");
});
module.exports = Route.exec;
Wir beginnen mit der Entwicklung der Geschäftslogik in Teil 2.
Um mehr über ExpressWebJs zu erfahren, besuchen Sie die Dokumentationsseite unter ExpressWebJs
Sie können mir auf Twitter @EmekaIgbokwe folgen
Sie können ExpressWebJs auf Twitter @expresswebjs folgen
und vergessen Sie nicht, auf Github ExpressWebJs zu staren
Bitte lassen Sie mich wissen, wenn Sie Fragen im Kommentarbereich haben. 😊