Meine eigentliche Frage ist: Ist es möglich, mit Sequelize die Modelle in separaten Ordnern zu arbeiten?Break Sequelize Modelle in separaten Ordnern
Ich frage das, weil ich versuche, mit einer modularen Struktur in meiner Anwendung zu arbeiten, um zu erreichen, dass ich das Modell, den Controller und die Routen im selben Ordner haben muss, hier ist, was ich meine:
├── node_modules
├── src
│ ├── client
│ │ └── ... //Frontend things managed by angular (like views, etc...)
│ └── server
| ├── components
| | ├── db
| | | ├── migrations
| | | | ├── users.js
| | | | └── ...
| | | ├── seeders
| | | ├── config.json
| | | ├── options.json
| | | └── index.js
| | ├── env
| | └── ...
│ ├── modules //By module i mean an entity
| | ├── users
| | | ├── users.model.js
| | | ├── users.controller.js
| | | └── index.js //Here i define the routes
| | └── ...
| └── ...
|
├── package.json
└── server.js
Wie könnte ich das tun? Wie könnte ich die Modelle in separate Ordner aufteilen?
Vielleicht was ich frage ist: Wie könnte ich das models/index.js Skript konfigurieren, um die Modelle aus jedem Verzeichnis zu lesen?
models/index.js
'use strict';
var fs = require('fs');
var path = require('path');
var Sequelize = require('sequelize');
var basename = path.basename(module.filename);
var env = process.env.NODE_ENV || 'development';
var config = require(__dirname + '/../config.json')[env];
var db = {};
if (config.use_env_variable) {
var sequelize = new Sequelize(process.env[config.use_env_variable]);
} else {
var sequelize = new Sequelize(config.database, config.username, config.password, config);
}
fs
.readdirSync(__dirname)
.filter(function(file) {
return (file.indexOf('.') !== 0) && (file !== basename);
})
.forEach(function(file) {
if (file.slice(-3) !== '.js') return;
var model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(function(modelName) {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
etwas, was ich dachte, ist für die xxx.model.js unter jedem Ordner der Module Verzeichnis eine Struktur wie folgt aussehen mit:
HINWEIS: Ich komme aus einem Laravel-Hintergrund, ich vermute, wie unterschiedlich sind Migrationen und Modelle in Sequelize seit wann Sie defi ne ein Modell, das Sie die Art sagen, etc .. der Säule, die gleiche wie die Migration ...
Die meisten meiner Fragen wurden mit [docs] (https://github.com/sequelize/cli#options) gelöst, aber nicht mit dem Brechen des Modellordners –
Können Sie mir sagen, wie Sie Ihr Problem gelöst haben? Ich bekomme nicht viel von den Unterlagen. –
@ JonathanSolorzano, hast du eine Lösung für dein Problem gefunden? –