Мой настоящий вопрос: возможно ли работать с sequelize с моделями в отдельных папках?Модифицировать модели в отдельных папках
Я прошу об этом, потому что я пытаюсь работать с модульной структурой в своем приложении, чтобы добиться того, что мне нужно иметь модель, контроллер и маршруты в одной и той же папке, вот что я имею в виду:
├── 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
Как я мог это сделать? как можно разделить модели на отдельные папки?
Возможно, что я прошу: как я могу настроить сценарии models/index.js для чтения моделей из каждой директории?
модель/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;
Что-то я думал, чтобы искать xxx.model.js по каждой папке из модулей каталога, имеющая структуру, как это:
modules
├── index.js //The above script configured to read the x.model.js in each folder
├── users
| ├── users.model.js
| ├── users.controller.js
| └── ...
├── questions
| ├── questions.model.js
| ├── questions.controller.js
| └── ...
└── ...
ПРИМЕЧАНИЕ: Я исхожу из фона Laravel, я угадываю, как миграции и модели различаются в последующем, поскольку, когда вы определяете Определим модель вы говорите тип и т.д .. колонки, такой же, как миграция ...
Большинство моих вопросов были разрешены с помощью [docs] (https://github.com/sequelize/cli#options), но не с разбиением папки с образцами –
Не могли бы вы рассказать мне, как вы решили свою проблему? Я не получаю много внимания от документов. –
@JonathanSolorzano, вы нашли решение проблемы? –