在不重新连接到数据库的情况下在各种文件中使用Think ORM

时间:2016-12-28 02:09:07

标签: javascript node.js express rethinkdb thinky

我有很多适合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 个答案:

答案 0 :(得分:2)

您用于创建和导出思维模型的架构可能不正确。

有关完整建议的体系结构,请参阅本指南。 https://thinky.io/documentation/architecture/

答案 1 :(得分: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;

真诚的 镜中的男人 (我得到了兄弟)