Ich habe den folgenden Code:Bücherregal zirkuläre Abhängigkeit mit ES5
const bookshelf = require('../config/bookshelf');
const BaseModel = require('bookshelf-modelbase')(bookshelf);
const moment = require("moment");
const User = require("./User");
const Meta = require("./Meta");
const Log = require("./Log");
class Session extends BaseModel {
get tableName() {
return "sessions";
}
get hasTimestamps() {
return false;
}
user() {
return this.belongsTo(User);
}
meta() {
return this.belongsTo(Meta);
}
logs() {
return this.hasMany(Log);
}
};
module.exports = Session;
und
const bookshelf = require('../config/bookshelf');
const BaseModel = require('bookshelf-modelbase')(bookshelf);
const Session = require("./Session");
const moment = require("moment");
class Log extends BaseModel {
get tableName() {
return "logs";
}
get hasTimestamps() {
return false;
}
session() {
return this.belongsTo(Session);
}
getDate() {
return moment(this.get("date")).format("MMM DD, YYYY - HH:mm:ss")
}
};
module.exports = Log;
belongsTo
Beziehung funktioniert, aber wenn ich hasMany
versuchen, erhalte ich: „Unbehandelte Ablehnung Fehler: Ein gültiger Das Zielmodell muss für die Sitzungen hasMany relation "error definiert werden.
Ich habe mir https://github.com/tgriesser/bookshelf/wiki/Plugin:-Model-Registry angesehen, aber es wird mit Pre-ES5 Syntax gemacht.
Ich denke, ich muss sicherstellen, dass "Log" -Klasse verfügbar ist, bevor ich in eine hasMany Beziehung ernenne, aber hier stecken.
Irgendwelche Ideen?
Edit: Doing
logs() {
var log = require("./Log");
return this.hasMany(log);
}
funktioniert, aber es sieht schlecht aus.
Das Bücherregal Registrierung ist genau das, was Sie brauchen. Warum ist die Pre-ES5-Syntax ein Problem? Kannst du es nicht anpassen? – DeadEye
Es gibt kein Beispiel dafür, wie man es mit der Klassensyntax macht. Wörter wie "Laden Sie das Plug-in auf Ihrer Bookshelf-Instanz mithilfe von Bookshelf.plugin ('registry')." macht keinen Sinn. Ich bin mir nicht sicher, wo ich diesen Code einfügen sollte. – Aris