У меня есть следующий код:Bookshelf циклическая зависимость с 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;
и
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
отношение работает правильно, но когда я пытаюсь hasMany
, я получаю: «Необработанное отказ Ошибка: Действительный целевая модель должна быть определена для сеансов hasMany отношение "ошибка.
Я посмотрел https://github.com/tgriesser/bookshelf/wiki/Plugin:-Model-Registry, но это делается с использованием синтаксиса pre-ES5.
Наверное, мне нужно убедиться, что класс «Журнал» доступен до того, как я назначил отношения hasMany, но застрял здесь.
Любые идеи?
Edit: Ведение
logs() {
var log = require("./Log");
return this.hasMany(log);
}
работает, но это выглядит плохо.
Реестр Bookshelf это именно то, что вам нужно. Почему синтаксис Pre-ES5 является проблемой? Не можете ли вы его адаптировать? – DeadEye
Нет примера о том, как это сделать с помощью синтаксиса класса. Кроме того, такие слова, как «Загрузите плагин на экземпляр Bookshelf с помощью Bookshelf.plugin (« registry »)». без разницы. Я не уверен, куда я должен добавить этот код. – Aris