Tag: jugglingdb

防止jugglingDB中的构造函数设置模型属性

在JugglingDB的节点应用程序中给出一个用户模型 User = schema.define('User', { name : String, email : String, API_KEY : String, created : {type: Date, default: Date.now}, }); 我想API_KEY属性是“只读”。 所以下面的数据: var data = { name : 'Test account', email : 'test@test.com', API_KEY : 'Some key' } 被接受为: var data = { name : 'Test account', email : 'test@test.com' } 在: var user […]

关系不存在 – JugglingDB与Postgres适配器中的错误

我正在使用Node with Express,并且将我的ORM从Mongoose(Mongo)移动到JugglingDB(Postgres),并且让JugglingDB使用我定义的一个简单模式困难得多。 我的模式如下: var UserToken = schema.define('UserToken', { token: {type: String, index: true} }, { tablename: 'user_token' }); var User = schema.define('User', { email: {type: String, required: true, index: true}, password_hash: String, first_name: String, last_name: String, role: {type: String, required: true, default: 'member'}, language: {type: String, default: 'en'}, api_key: String, active: {type: Boolean, required: […]

我可以在JugglingDB中拥有多个模式对象吗?

我有一个简单的应用程序连接到两个数据源。 一个是mongo,其中我使用mongoose作为我的ORM,主要是因为它有一些很棒的function供我使用。 另一个是我正在使用mysql的适配器jugglingdb的MySQL。 由于我是jugglingdb的新手,我有几个有关其组织的问题。 你可以有你的模式对象在多个文件? Mongoose允许您在不同的文件中创build模式对象,并允许您使用mongoose.model("mymodel")引用它们,但mongoose.model("mymodel")的有限文档将其所有模式定义在一个文件中。 我想知道如何引用你已经定义的模式对象。 到目前为止,我的努力一直是从主模式对象中移除连接信息,并将其放入另一个文件中。 var Schema = require('jugglingdb').Schema; var TestSchema = function () { var schema = new Schema('mysql', { database: 'MyDB', username: 'blah', host: 'localhost', password: 'blah', port: '3306' }); return schema; }; module.exports = TestSchema; 然后,我会添加每个模式对象在他们自己的文件,并要求上面的代码是这样的: var Test = require('../../db/jugglin_conn') , schema = new Test(); var Email = schema.define('email', […]

如何在compoundjs初始化期间从jugglingdb适配器获取本地mongodb客户端?

我正在使用compoundjs和使用jugglingdb的mongodb适配器。 我一直在检索和重用控制器中的本地mongodb客户端 ,通过执行以下操作: var db = compound.orm._schemas[0].client; 这很好,因为我可以使用mongodb支持的函数,比如.collection(name)和.find() 。 但是,当我为compoundjs创build初始化程序时, .client为空,但看起来像_schemas[0]不是。 例如: module.exports = function (compound) { var db = compound.orm._schemas[0].client; // _schemas[0] isn't empty as .client was reached. db.collection('collection'); // Throws: TypeError: Cannot call method 'collection' of undefined }; 如何从jugglingdb适配器中检索本地mongodb客户端,而无需自己重新创build连接?

了解Try / Catch和Domains在Node中的error handling

我一直在研究正确的方法来处理Node中的错误,并且在StackOverflow和NodeJS的站点上find了一些很好的答案,例如如何防止node.js崩溃? try-catch不起作用 ,并且NodeJS自己logging: http : //nodejs.org/api/domain.html 。 不过,我还剩下几个问题,关于何时何地使用try / catch和/或域名。 我意识到这与asynchronous代码和同步代码有关,但即使在NodeJS网站提供的有关域的示例代码中,它们也会在域的error handling程序中使用try / catch。 有人可以解释一些细节,try / catch不会在error handling程序中捕获asynchronous错误吗? 除此之外,NodeJS的文档build议您仍然应该结束exception进程,这就是为什么来自Domain文档的代码build议在发生exception时使用集群来分派新的subprocess/ worker。 主要的原因是: 由于JavaScript在JavaScript中的工作原理,几乎没有任何方法可以安全地“捡起你离开的地方”,而不会泄漏引用或创build其他某种不明确的状态。 有人可以解释这个吗? 抛出在JavaScript中如何工作的本质是什么? 为什么资源会疯狂泄漏? 是否真的有必要重新启动进程或杀死/启动一个工人? 例如,我正在实现JugglingDB ORM,并且曾经忘记启动我的本地mysql服务器。 我遇到了一个ECONNREFUSED错误,导致程序崩溃。 意识到这可能发生在生产环境(数据库崩溃或暂时不可用),我想抓住这个错误,并妥善处理; 重试连接,维护关于数据库的状态variables,并可能通过响应暂时不可用的消息来处理请求。 Try / Catch根本没有发现错误,尽pipe我看到我可以使用一个域名,但是使用推荐的策略,我将处于无休止的杀死和启动工作的循环,直到数据库恢复在线。 JugglingDB ,无论出于何种原因,只有一个“连接”的事件,但没有任何forms的callback函数,通过一个错误的对象; 它试图连接你实例化类的那一刻,并抛出没有捕获并以优美的方式散发的错误。 这使我想看看其他的ORM,但这仍然不能回答我有关如何处理这种情况的问题。 使用一个域来捕获潜在的连接错误,并在没有启动一个新进程的情况下正常处理它会是错误的吗? 这里是我发布到JugglingDB github上的问题: https : //github.com/1602/jugglingdb/issues/405 ,这里是JugglingDB在服务器不存在时产生的错误的堆栈跟踪在启用池选项时发生 ): Error: connect ECONNREFUSED at errnoException (net.js:901:11) at Object.afterConnect [as […]

nodejs jugglingdb belongsTo与现有的数据库对象有很多关系

jugglingdb公开了两个函数来创build关系数据库:belongsTo和hasMany 我现在问自己如何在日常的开发中使用它。 belongsTo和hasMany正在为对象添加函数,但是似乎没有办法在现有对象之间创build关系? 有关示例,请参阅: http : //compoundjs.com/juggling.html#hasMany 。 我想不创build对象,而是创build现有对象之间的联系,这将如何工作? 也许我只是曲解的function? 玩的开心 雅舍 ps:如果有1500+代表的人可以创buildjugglingdb标签并将其添加到这个问题,那将是非常好的吗? 我真的不能说,如果它相关的,但是。