Tag: orm

我应该在哪里写模型或控制器查询(续集)?

我试图找出我应该在节点js应用程序中使用sequalize作为ORM编写查询的位置。 例如,我有一个模型地址,我写数据是这样的: let adr = await Address.create({street, number, city, state, country}) 我应该将这些代码写入控制器,在那里获取数据还是在模型中,然后传递给模型的方法(例如整个对象地址)? 最佳做法是什么? 我认为把它写在模型中更好,因为我可以在许多控制器中使用相同的代码。 但也许还有一些其他的限制。

Sequelize.js使用hasMany连接两次表

我正在使用Sequelize.js在同一个表上执行双连接。 我有一组Team对象和一组Game对象。 一个团队有许多游戏,所以它会在游戏桌上有外键,但是在每个游戏中都有两个团队,所以我需要两次join表格。 什么是使用序列化ORM来做到这一点的最好方法。 Team = sequelize.define('teams',{ name : Sequelize.STRING, location : Sequelize.STRING, }); Game = sequelize.define('games',{ homeTeamId : Sequelize.INTEGER, awayTeamId : Sequelize.INTEGER, location : Sequelize.STRING, }); // Associations Game.hasOne(Team, {foreignKey : 'homeTeamId'}); .hasOne(Team, {foreignKey : 'awayTeamId'}); Team.hasMany(Game); 谢谢!

Sequelize .sync函数挂起:来自serial.klass的发射器

我从暂存计算机上完美运行的临时环境中取出了一个应用程序,但本地挂起了sequelize.sync函数。 该应用程序甚至没有达到“听港口…” 我已经通过Sequelize中的同步functionlogin,发现这是卡住的地方: (query-chainer.js中的第79 – 88行) var emitter = serial.klass[serial.method].apply(serial.klass, serial.params) emitter.success(function(result) { self.serialResults[serialCopy.indexOf(serial)] = result if (serial.options.success) { serial.options.success(serial.klass, onSuccess) } else { onSuccess() } }).error(onError) 此function不会返回到success或error 。 我不应该对代码做任何修改,因为我知道他们的库正在工作 – 我有一个本地副本,可以重构我的工作,我只需要分段副本在生产过程中快速更改生产重构。 有什么可以改变造成这个问题? 这似乎可能是一个连接问题? 我已经validation主机是端口为5432 localhost主机。 更正username , password和dbName 。 所有通过: sequelize = new Sequelize(config.db.dbName, config.db.username, config.db.password, { dialect: 'postgres', host: config.db.host, port: config.db.port, logging: […]

如何使用自定义查询方法来扩展水线?

我想创build和使用水线的一些自定义查询方法。 例如方法makeItAwesome : Article.makeItAwesome({ id: 42 }).exec(function(err, awesomeArticle) { /* … */ }); 当然,我可以将这个makeItAwesome添加到模型的静态方法中,但是如果我想要其他模型可重用的常用的东西。 sails.js或waterline本身是否有内置的方法,或者我应该自己做? 如果不是哪里是最好的方法来保持这个东西? 它必须是一个单独的模块,需要在每个模型中,或者我可以在某处扩展每个模型原型?

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

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

在nodejs中导入MySQL数据库以实现集成testing的最简单方法

我有一个用nodejs构build的web应用程序,我想对我的API进行一些集成testing,这将涉及到一个实时数据库。 有没有简单的方法来加载和执行SQL转储文件来预先填充数据库之前运行我的testing?

在Node.js中的Mongodb / Mongoose 通过嵌套文档的id查找

出于某种原因,当我通过嵌套文档的ID进行search时找不到文档。 我可以很容易地执行其他发现,所以这两个工作: User.findOne({"_id" : some_id}, function(err,user){} User.findOne({"arrayOfNestedDocs.value":someValue}, function(err,user){} 但是通过嵌套文档的ID查找不起作用: User.findOne({"arrayOfNestedDocs._id" : some_id}, function(err,user){} 我可以在mongo shell中执行search,但不能通过mongoose进行search。 任何想法都会有所帮助。

我怎样才能使用node-orm2来模拟两个或更多的数据库?

我正在尝试使用Node-orm2作为中间件, Express文档仅显示如何连接到一个数据库。 我试图让Express使用两个不同的中间件层,但没有运气。 例如, app.use(orm.express('sqlite://test.db', define: { /* define table1 */ })); app.use(orm.express('sqlite://test2.db', define: { /* define table2 */ })); 我把所有的东西都正确地路由到这个get处理程序 app.get("/", function (req, res) { var t1 = req.db.models.table1.find(…); var t2 = req.db.models.table2.find(…); res.send([t1,t2]); }); 由于我app.use table1的数据库, find调用的第二个会产生 TypeError: Cannot call method 'find' of undefined …这意味着这两个define:块没有合并,这是我们想要的。 我将如何使用node-orm2访问两个数据库?

任何MongoDB的ORM允许你别名字段?

我只是看着这个: http : //blog.mongodb.org/post/38467892360/mongodb-schema-design-insights-and-tradeoffs-from 有一个build议说出来了:在多次复制的文档中,尽量使字段名称尽可能小: 总是使用短字段作为约定来缩小收集大小。 这将有助于您节省内存。 在“publicationUrl”上select“u”。 如果你正在谈论数百万行,这是有道理的。 但是,那里有很大的可读性问题。 它可能是显而易见的价值是一个url,但它是什么样的url? 尽pipe这可能在ORM中是可以解决的。 是否有任何与MongoDb接口的ORM允许你说数据库中的“u”会映射到代码中的“publicationUrl”? 当你有代码中的au这样的东西时,这个可读性很差; article.u没有太多好处。 (Ruby和node.js标签在那里,因为那些是我用mongo工作的语言。随意添加标签。)

我如何使默认时间戳列的行为?

我试图强制这些列做两件事情: 使用“没有时区的时间戳”(后端是Postgres)。 实际上将后台的默认设置为“now / utc”。 { // a bunch of column definitions createdAt: { type: DataTypes.DATE, defaultValue: sequelize.fn('now') } }, { timestamps: false, comment: "this isn't even the real comment" } 结果是这样的: CREATE TABLE IF NOT EXISTS "common"."images" ("id" VARCHAR(255) , "imageType" VARCHAR(255), "mimeType" TEXT, "source" VARCHAR(255), "path" TEXT UNIQUE, "createdAt" TIMESTAMP WITH TIME ZONE […]