Getter und Setter in MongoDB

0 Aktien
0
0
0
0

Einführung

erhaltenUnd SatzSie helfen Ihnen dabei, die Art und Weise zu ändern, wie Eigenschaften, die durch Schlüssel und Werte im zugrunde liegenden Rohdokument definiert sind, abgerufen und festgelegt werden.

Zuspieler

Satz Sie ermöglichen es Ihnen, Mongoose-Dokumentdaten zu transformieren, bevor sie das rohe MongoDB-Dokument erreichen und einem tatsächlichen Schlüssel als Wert zugewiesen werden.

Angenommen, Sie implementieren die Benutzerregistrierung für eine Website. Benutzer geben eine E-Mail-Adresse und ein Passwort an, die in MongoDB gespeichert werden. Die E-Mail-Adresse ist ein String, den Sie in Kleinbuchstaben umwandeln möchten, damit eine E-Mail-Adresse nicht für mehrere Konten verwendet werden kann. Beispielsweise könnte die E-Mail-Adresse [email protected] für zwei Konten registriert sein: [email protected] und [email protected].

Die Normalisierung von E-Mail-Adressen in Kleinbuchstaben lässt sich einfach über Mongoose-Setter konfigurieren. Beachten Sie im folgenden Codeausschnitt, dass die Setter (sowie die Empfänger) im Schema definiert sind:

function toLower (v) {
return v.toLowerCase();
}
var UserSchema = new Schema({
email: { type: String, set: toLower } 
});
var User = mongoose.model('User', UserSchema);
var user = new User({email: '[email protected]'});
console.log(user.email); // '[email protected]'

Wie Sie oben sehen können, ermöglichen Setter die Transformation von Daten, bevor diese das rohe MongoDB-Dokument erreichen, und die Zuweisung eines Wertes zu einem tatsächlichen Schlüssel.

Getter

erhalten Sie ermöglichen es Ihnen, Datenansichten zu transformieren, während Sie vom rohen MongoDB-Dokument zu dem navigieren, was Sie sehen.

Angenommen, Sie speichern eine Kreditkartennummer und möchten für den Mongoose-Benutzer alles außer den letzten vier Ziffern verbergen. Dies erreichen Sie, indem Sie einen Empfänger wie folgt definieren (beachten Sie, dass Empfänger im Schema definiert werden):

function obfuscate (cc) {
return '****-****-****-' + cc.slice(cc.length-4, cc.length);
}
var AccountSchema = new Schema({
creditCardNumber: { type: String, get: obfuscate }
});
var Account = mongoose.model('Account', AccountSchema);
Account.findById( someId, function (err, found) {
console.log(found.creditCardNumber); // '****-****-****-1234'
});

Ergebnis

Setter dienen dazu, die zugrundeliegenden Rohdaten zu verändern. Getter hingegen transformieren die Rohdaten (ohne sie auf Rohdatenebene zu verändern) in das vom Benutzer erwartete Format. Beide sind in der Schemadefinition festgelegt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Das könnte Ihnen auch gefallen
TLS vs. SSL – Die wichtigsten Unterschiede verstehen und warum sie wichtig sind

TLS vs. SSL – Unterschiede, Geschichte und Bedeutung für die Websicherheit

Wenn es um Websicherheit geht, fallen ständig die Begriffe «SSL» und «TLS». Doch worin genau besteht der Unterschied zwischen den beiden? Warum gilt TLS heute als sicherer Webstandard, während SSL fast in Vergessenheit geraten ist? In diesem Artikel beleuchten wir dieses Thema professionell, um Ihnen ein besseres Verständnis von Websicherheitsprotokollen und der Bedeutung der richtigen Wahl zu vermitteln.