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

Using Think ORM in various files without reconnecting to database

我有大量的 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;

我怎样才能做到这样我就不必一直实例化变量并因此每次都创建新连接并且仍然能够在它们自己的单独文件中创建所有这些数据模型?

您用来创建和导出思想模型的体系结构可能不正确。

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

我找到你了兄弟,这是你一直在寻找的答案:

// 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;

此致 镜子里的人 (我明白了兄弟)