Inhaltsverzeichnis
Was ich zuvor geschrieben habe
Das Folgende ist der Text
Anforderungsanalyse
Datenanalyse und -design
API-Analyse und Design
Registrierungsschnittstelle
Anmeldeschnittstelle
Abmeldeschnittstelle
Benutzeroberfläche für persönliche Informationen anzeigen
Benutzeroberfläche für persönliche Informationen ändern
Kodierungsimplementierung
Heim Web-Frontend js-Tutorial Technischer Artikel: Verwenden Sie Egg.js zum Erstellen einer Backend-Service-API (Sammlungsreihe)

Technischer Artikel: Verwenden Sie Egg.js zum Erstellen einer Backend-Service-API (Sammlungsreihe)

Jul 27, 2018 pm 05:05 PM
javascript mongodb node.js

Ich habe Egg.js kennengelernt, als ich js lernte, und habe eine detaillierte Studie durchgeführt. Es handelt sich um ein von Alibaba eingeführtes Knotenentwicklungsframework, das für Frameworks und Anwendungen auf Unternehmensebene entwickelt wurde. Wie man eine Backend-Service-API erstellt, erfordert weitere Untersuchungen. In diesem Artikel wird hauptsächlich Egg.js zum Erstellen einer Backend-Service-API vorgestellt. Sie können darauf zurückgreifen, wenn Sie es benötigen.

Was ich zuvor geschrieben habe

Da die normale Entwicklung auf der Trennung von Front-End und Back-End basiert, habe ich darüber nachgedacht, Egg zu verwenden, um Back-End-Dienste zu erstellen und eine Reihe von APIs zu schreiben Schnittstellen zur Zusammenarbeit mit anderen Projekten. Der Technologie-Stack dieses Projekts verwendet Egg.js, MongoDB und Mongoose. In diesem Artikel wird der Prozess des Schreibens des Registrierungs- und Anmeldemoduls sowie des User Center-Moduls aufgezeichnet. Der Zweck besteht darin, den Lernprozess zeitnah zusammenzufassen, Dokumentationsfähigkeiten zu üben, mit allen zu teilen und zu kommunizieren und gemeinsam Fortschritte zu erzielen.

Projektadresse: Egg-API

Wenn es Ihnen gefällt, klicken Sie bitte auf „Gefällt mir“, „Folgen“ und „Forken“. langfristig (._.) ✎_

Das Folgende ist der Text

Anforderungsanalyse

Für das Registrierungs- und Anmeldemodul lautet die Anforderungsanalyse wie folgt:

  • Registrieren Sie sich als neuer Benutzer und geben Sie die Daten ein.

  • Melden Sie sich beim System an. Sie müssen die Eingabedaten anhand der Token-Authentifizierung überprüfen

  • Abmeldefunktion

  • Anmelden, um persönliche Informationen im User Center-Modul anzuzeigen

  • Ändern Persönliche Informationen im User Center-Modul

Datenanalyse und -design

Explizite Daten:

  • Benutzername: String Benutzername

  • userPass: String Kontopasswort

  • userEmail: String Benutzer-E-Mail

  • telphone: String Mobiltelefonnummer

  • Avatar: String Avatar

  • Alter: Nummer Alter

  • Geschlecht: String Geschlecht

  • Stadt: String City

Implizite Daten:

  • userRole: Nummer der Benutzerrolle (1. Gewöhnlich Benutzer, 2. Administrator, 3. Superadministrator, Standardbenutzer Für normale Benutzer erstellt der Superadministrator es beim Erstellen der Datenbank)

  • userCreate: Datum der Benutzererstellungszeit

  • lastLoginTime: Datum der letzten Anmeldung

  • laseLoginPlace: String Letzte Anmeldeadresse

API-Analyse und Design

Die API in der Schnittstellenbeschreibung unten bezieht sich auf den Schnittstellennamen, Parameter bezieht sich auf die eingehenden Daten, Code bezieht sich auf den Identifikationscode des Antwortergebnisses, Nachricht bezieht sich auf die Beschreibung der Antwortergebnisinformationen, Daten beziehen sich auf die erfolgreich zurückgegebenen Daten Antwort

Registrierungsschnittstelle
api: /api/v1/signup  (post)

params: {
    userName: String,  // 用户名,具有唯一性
    userPass: String,  // 用户密码
    userEmail: String,  // 用户邮箱
}

code: 1、注册成功 0:输入信息不完善或有误 -1:注册失败,该用户名已存在

msg: 响应返回的信息说明

data: {
    _id: _id,
    userName: 用户名,
    token: 生成的token,
}
Nach dem Login kopieren
Anmeldeschnittstelle
api: /api/v1/signin  (post,请求头带token)

params: {
    userName: String,  // 用户名
    userPass: String,  // 用户密码
}

code: 1、登录成功 0:输入信息不完善或有误  -1:用户不存在

msg: 响应返回的信息说明

data: {
    _id: _id,
    userName: 用户名,
    lastLoginTime: 上次登录时间,
    lastLoginPlace: 上次登录地点,
}
Nach dem Login kopieren
Abmeldeschnittstelle
api: /api/v1/signout  (get)

code: 1、登出成功,前端退出系统并清空token

msg: 登出响应返回信息说明

data: {}
Nach dem Login kopieren
Benutzeroberfläche für persönliche Informationen anzeigen
api: /api/v1/user/userName  (post,请求头带token)

params: {
    userName: String,
}

code: 1、查询成功  0、输入信息不完善  -1、查询失败

msg: 查找个人信息返回信息说明

data: {
    userName: 用户名,
    userEmail: 用户邮箱,
    age: 年龄,
    city: 城市,
    ......
}
Nach dem Login kopieren
Benutzeroberfläche für persönliche Informationen ändern
api: /api/v1/user/userName (put,token)

params: {
    ......  // 更改的信息
}

code: 1、更新成功 0、输入信息不完善或有误 -1、更新失败

msg: 更新个人信息返回信息说明

data: {
    userName: 用户名,
    ......
}
Nach dem Login kopieren

Kodierungsimplementierung

Hinweis: Es werden nur Anweisungen zur Kodierungsimplementierung bereitgestellt. Den vollständigen Inhalt finden Sie unter Egg-API

Gehen Sie davon aus, dass Sie ein Projekt und die Verzeichnisstruktur initialisiert haben des Projekts stimmt mit der offiziellen überein. Da wir die MongoDB-Datenbank verwenden möchten, müssen wir zuerst egg-mongoose installieren und in die Konfigurationsdatei schreiben:

// config/plugin.js
exports.mongoose = {
    enable: true,
    package: 'egg-mongoose',
};
// config/config.default.js
config.mongoose = {
    url: 'mongodb://127.0.0.1/apiExample',
    options: {},
};
Nach dem Login kopieren

Definieren Sie unsere Schemadatei im Modellordner:

const UserSchema = new Schema({
    userName: { type: String, unique: true, required: true, },
});
Nach dem Login kopieren

Routendefinition:

router.post('/api/v1/signup', controller.user.signup);
Nach dem Login kopieren

Controller-Schreiben: Wird verwendet, um Benutzereingaben zu analysieren und nach der Verarbeitung entsprechende Ergebnisse zurückzugeben. Wir können die erhaltenen Daten zum Rendern in Render einfügen und dann das gerenderte Ergebnis an den Browser senden, oder wir können die Daten direkt ctx.body zuweisen und sie dann im JSON-Modus zurückgeben.

class UserController extends Controller {
    // 登录
    async signin() {
        const { ctx } = this;
        const rule = {
            userName: { type: 'string', required: true, message: '必填项' },
            userPass: { type: 'string', required: true, message: '必填项' },
        };
        const signinMsg = ctx.request.body;
        await ctx.validate(rule, signinMsg);
        signinMsg.userPass = ctx.helper.encrypt(signinMsg.userPass);
        const result = await ctx.service.user.signin(signinMsg);
        ctx.body = result;
    }
}
Nach dem Login kopieren

Dienstschreiben: Wird zum Schreiben der Geschäftslogikschicht verwendet und kann wiederverwendet werden. Für die Verarbeitung komplexer Daten müssen beispielsweise die anzuzeigenden Informationen aus der Datenbank bezogen oder der Dienst eines Drittanbieters aufgerufen werden.

class UserService extends Service {
    // 更新用户信息
    async updateUser(userMsg) {
        const { ctx } = this;
        const res = {};
        const result = await ctx.model.User.findByIdAndUpdate(userMsg._id, userMsg);
        res.code = 1;
        res.msg = '用户信息已更改';
        res.data = result;
        return res;
    }
}
Nach dem Login kopieren

Eine einfache Knotenanwendungsstruktur sieht so aus, sodass Egg.js für den Schnittstellendienst verantwortlich ist. Apache PHP MySQL

Verwandte Artikel:

So erstellen Sie einen Webserver mit Nodejs

Probleme beim Backend-Aufbau von Server-Unternehmens-Websites

Ähnliche Videos:

Video-Tutorial zum Aufbau eines Hochleistungs-Linux-Servers

Das obige ist der detaillierte Inhalt vonTechnischer Artikel: Verwenden Sie Egg.js zum Erstellen einer Backend-Service-API (Sammlungsreihe). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verbinden Sie Navicat mit Mongodb So verbinden Sie Navicat mit Mongodb Apr 24, 2024 am 11:27 AM

Um mit Navicat eine Verbindung zu MongoDB herzustellen, müssen Sie: Navicat installieren. Eine MongoDB-Verbindung erstellen: a. Geben Sie den Verbindungsnamen, die Hostadresse und den Port ein. b. Geben Sie die Authentifizierungsinformationen ein (falls erforderlich). Überprüfen Sie die Verbindung Speichern Sie die Verbindung

Vergleich von Golang und Node.js in der Back-End-Entwicklung Vergleich von Golang und Node.js in der Back-End-Entwicklung Jun 03, 2024 pm 02:31 PM

Go und Node.js weisen Unterschiede in der Typisierung (stark/schwach), der Parallelität (Goroutine/Ereignisschleife) und der Speicherbereinigung (automatisch/manuell) auf. Go hat einen hohen Durchsatz und eine geringe Latenz und eignet sich für Backends mit hoher Auslastung; Node.js eignet sich gut für asynchrone E/A und eignet sich für hohe Parallelität und kurze Anfragen. Praktische Beispiele für beide sind Kubernetes (Go), Datenbankverbindungen (Node.js) und Webanwendungen (Go/Node.js). Die endgültige Wahl hängt von den Anwendungsanforderungen, den Teamfähigkeiten und den persönlichen Vorlieben ab.

Was nützt net4.0? Was nützt net4.0? May 10, 2024 am 01:09 AM

.NET 4.0 wird zum Erstellen einer Vielzahl von Anwendungen verwendet und bietet Anwendungsentwicklern umfangreiche Funktionen, darunter objektorientierte Programmierung, Flexibilität, leistungsstarke Architektur, Cloud-Computing-Integration, Leistungsoptimierung, umfangreiche Bibliotheken, Sicherheit, Skalierbarkeit, Datenzugriff und Mobilgeräte Entwicklungsunterstützung.

Integration von Java-Funktionen und Datenbanken in serverlose Architektur Integration von Java-Funktionen und Datenbanken in serverlose Architektur Apr 28, 2024 am 08:57 AM

In einer serverlosen Architektur können Java-Funktionen in die Datenbank integriert werden, um auf Daten in der Datenbank zuzugreifen und diese zu bearbeiten. Zu den wichtigsten Schritten gehören: Erstellen von Java-Funktionen, Konfigurieren von Umgebungsvariablen, Bereitstellen von Funktionen und Testen von Funktionen. Durch Befolgen dieser Schritte können Entwickler komplexe Anwendungen erstellen, die nahtlos auf in Datenbanken gespeicherte Daten zugreifen.

So konfigurieren Sie die automatische Expansion von MongoDB auf Debian So konfigurieren Sie die automatische Expansion von MongoDB auf Debian Apr 02, 2025 am 07:36 AM

In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Apr 02, 2025 am 07:21 AM

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

Kann Navicat eine Verbindung zu Mongodb herstellen? Kann Navicat eine Verbindung zu Mongodb herstellen? Apr 23, 2024 pm 05:15 PM

Ja, Navicat kann eine Verbindung zur MongoDB-Datenbank herstellen. Zu den spezifischen Schritten gehören: Öffnen Sie Navicat und erstellen Sie eine neue Verbindung. Wählen Sie den Datenbanktyp MongoDB aus. Geben Sie die MongoDB-Hostadresse, den Port und den Datenbanknamen ein. Geben Sie Ihren MongoDB-Benutzernamen und Ihr Passwort ein (falls erforderlich). Klicken Sie auf die Schaltfläche „Verbinden“.

Großes Update von Pi Coin: Die PI Bank kommt! Großes Update von Pi Coin: Die PI Bank kommt! Mar 03, 2025 pm 06:18 PM

Pinetwork startet Pibank, eine revolutionäre Mobile -Banking -Plattform! PiNetwork today released a major update on Elmahrosa (Face) PIMISRBank, referred to as PiBank, which perfectly integrates traditional banking services with PiNetwork cryptocurrency functions to realize the atomic exchange of fiat currencies and cryptocurrencies (supports the swap between fiat currencies such as the US dollar, euro, and Indonesian rupiah with cryptocurrencies such as PiCoin, USDT, and USDC). Was ist der Charme von Pibank? Lass uns herausfinden! Die Hauptfunktionen von Pibank: One-Stop-Management von Bankkonten und Kryptowährungsvermögen. Unterstützen Sie Echtzeittransaktionen und übernehmen Sie Biospezies

See all articles