Использование Think ORM в различных файлах без повторного подключения к базе данных
У меня есть куча моделей для thinky, и мне нужно создать объект в каждом файле для thinky и связать его примерно 10 раз, потому что у меня столько моделей.
var dbconfig = require('../config/config.js')['rethinkdb'];
var thinky = require('thinky')(dbconfig);
var User = require('./user.js');
var type = thinky.type;
var r = thinky.r;
var Feedback = thinky.createModel("Feedback", {
id: type.string(),
feel: type.number().required(), // 0 = sad, 1 = happy
reason: type.string(),
description: type.string(),
createdAt: type.date().default(r.now()),
createdBy: type.string().required()
});
Feedback.ensureIndex("id");
module.exports = Feedback;
Как я могу сделать так, чтобы мне не приходилось постоянно создавать экземпляр переменной и, следовательно, каждый раз создавать новые подключения и при этом иметь возможность создавать все эти модели данных в отдельном файле?
2 ответа
Решение
Я понял, братан, вот ответ, который ты долго искал:
// file: util/thinky.js
var thinky = require('thinky')({
// thinky's options
})
module.exports = thinky;
Затем включите это так:
// file: models/user.js
var thinky = require(__dirname+'/util/thinky.js');
var type = thinky.type;
var User = thinky.createModel("User", {
id: type.string(),
name: type.string(),
age: type.number()
});
module.exports = User;
С уважением человек в зеркале (я понял, братан)
Архитектура, которую вы используете для создания и экспорта продуманных моделей, может быть неправильной.
Обратитесь к этому руководству для полной предлагаемой архитектуры. https://thinky.io/documentation/architecture/