I Segel-Haken-sequelize bin mit sequelize als ORM in meinen Segeln App zu laden. Das Setup meiner Controller und Richtlinien (d. H. Nur ihre Methoden erstellen) hängt jedoch von den Modellen ab. Ich muss den installierbaren Haken "sails-hook-sequelize" ausführen, bevor ich Controller- und Policy-Hooks ausführe (derzeit wird er ausgeführt und die Controller/Policies können nicht geladen werden). Wie kann ich das machen? TLaden einen installierbare Haken vor dem nativen Haken
Vielen Dank im Voraus.
Edit: Hier ist ein Code zu veranschaulichen, was ich zu tun versuche:
UserController.js
let Endpoint = require('../classes/Endpoint');
let endpoint = new Endpoint(User);
Object.assign(endpoint, {
find
});
module.exports = endpoint;
function find(req, res, next) {
User.findAll(
{
where: req.query,
include: [
{
model: Privilege,
include: [
{
model: Account,
where: {
accountPkey: {
$in: AuthorizationService.accountsForPrivileges(req.tokenData.privileges, ['ADMINISTRATOR', 'OFFICE MANAGER'])
}
}
}
]
}
]
})
.then(users => res.ok(users))
.catch(err => res.serverError(err));
}
im Grunde habe ich eine Standard-Endpoint-Klasse, die ich instanziiert und dann Methoden hinzuzufügen. Sie können sehen, dass die Endpoint-Klasse ein Modellargument verwendet. Wenn dieser Hook jedoch ausgeführt wird, existieren die Modelle noch nicht, da sie von einem Hook eines Drittanbieters definiert werden (mit Sequelize).
Ich habe das OP, um zu versuchen und zu erklären, was ich versuche, vielleicht erreichen Sie eine Vorstellung haben. Ich kann mich nicht wirklich mit dem Modell anlegen (glaube ich nicht), da ich dies auf eine bereits existierende Datenbank mit einer sehr durchdachten Architektur aufbaue. – pQuestions123
Ich denke, ich habe eine Möglichkeit, dies zu umgehen. Wie kann ich die Reihenfolge meines Projekts/der installierten Hooks festlegen? (d. h. Ich möchte einen Projekt-Hook erstellen, der nach sails-hook-sequelize läuft) – pQuestions123
Das ist eine gute Frage, aber es verdient einen separaten Beitrag, falls jemand anders dieselbe Frage hat! Die Antwort auf diese Frage bleibt noch, "du kannst es nicht tun", vorerst. – sgress454