Articles of orm

当使用bookshelf的时候,得到“不能读取属性'toString'的undefined”

我有一套看起来像这样的Bookshelf模型: const User = bookshelf.Model.extend({ tableName: 'users', hasTimestamps: true, posts: function() { return this.hasMany(Posts); }, }); const Posts = bookshelf.Model.extend({ tableName: 'posts', hasTimestamps: true, author: function() { return this.belongsTo(User); }, }); 使用knex,我像这样设置模式: Promise.all([ knex.schema.createTableIfNotExists('users', (tbl) => { tbl.increments('id').primary(); tbl.string('name'); tbl.string('username'); tbl.string('email'); tbl.timestamps(); }), knex.schema.createTableIfNotExists('posts', (tbl) => { tbl.increments(); tbl.string('title'); tbl.string('body'); tbl.integer('author').references('users.id'); tbl.timestamps(); }) ]); 当我然后运行下面的服务器路线devise来获取一个职位: […]

正确查询基于查找所有对象有很多关系

你好,我遇到了一个问题,find最好的解决scheme,find并计算所有可用于预订的汽车。 我的意思是车模和预约模型之间有这样的关系: Reservation.belongsTo(Car); Car.hasMany(Reservation, {foreignKey: { allowNull: false }}); 然后,我需要find所有可供用户在他/她select的时间段内预定的车辆。 例如,让我们想象一下这样的情况:我们有3辆车,A,B,C和: 汽车 – 答:现在有两个保留 – 从2016年10月10日至2016年10月13日和从17.10.2016 – 18.10.2016 车B:有一个保留 – 8.10.2016 – 11.10.2016 车C:一次预约 – 15.10.2016 – 16.10.2016 用户希望从12.10.2016至16.10.2016预定一辆车。 因此,他只能得到一辆车select:汽车乙 我创build了这样的查询来得到这个结果: var results = await Car.findAndCountAll({ include: [{ model: Reservation, where: { $not: { $or: [ { dateIn: { $between: [chosenIn, chosenOut], } }, { […]

Sequelize:根据请求在运行时连接到数据库

我正在做一个node.js应用程序,我需要连接到多个数据库。 其中一个数据库是中央数据库,其中包含所有人共同的信息。 然后有根据国家储存数据的国家级数据库。 我在应用程序中使用续集ORM。 数据库是postgresql。 框架是明确的。 问题是我想根据请求使用哪个数据库来决定运行时间,模型应该自动连接到适当的数据库。 我已经看到这个问题,但没有发现它有帮助。 我也检查了另一个论坛,但没有发现任何东西。

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

我试图找出我应该在节点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。 任何想法都会有所帮助。