Tag: bookshelf.js

如何在Bookshelf中获取join模型的模型?

我有这个股票和快照的这个1对多的数据模型。 // stock.js var bookshelf = require('../config'); var Snapshot = require('./snapshot'); var Stock = bookshelf.Model.extend({ tableName: 'stocks', hasTimestamps: true, snapshots: function() { return this.hasMany(Snapshot); } }); module.exports = bookshelf.model('Stock', Stock); 每只股票都有许多数据快照。 快照属于一个股票: var bookshelf = require('../config'); var Stock = require('./stock'); var Snapshot = bookshelf.Model.extend({ tableName: 'snapshots', hasTimestamps: true, stock: function() { return this.belongsTo(Stock); } }); […]

BookshelfJS关系 – hasMany

我正在使用BookshelfJS作为我的ORM。 我有3个模型。 TripHistory user_id route_id Route id name Users id name 从我的用户模型,我有一个关系 trips() { return this.hasMay(TripHistory) } 和TripHistory有类似的关系 route() { return this.belongsTo(Route) } 这里的问题是,当我尝试获取行程历史logging时,我只想得到路线名称。 运行 withRelated: ['trips.route'] 回报 "trips": [ { "id": 1, "user_id": 1, "route_id": 1, "driver_id": 1, "trip_id": 1, "created_at": "2017-08-09T16:46:34.000Z", "updated_at": "2017-08-09T16:46:34.000Z", "route": { "id": 1, "pickup": "Fadeyi", "destination": "Jibowu", "departure_time": "6:00", […]

解决NodeJS模型中的循环依赖问题

我有两个模型(使用BookshelfJS或BackboneJS,没关系): modelA , modelB 。 modelA需要modelB , modelB需要modelA 。 最初,我有: // modelA var Bookshelf = require('bookshelf); var modelB = require('./modelB'); var modelA = Bookshelf.Model.extend({}); module.exports = modelA; // modelB var Bookshelf = require('bookshelf); var modelA = require('./modelA); var modelB = Bookshelf.Model.extend({}); module.exports = modelB; 然后我在这里阅读Bookshelf.plugin('register') 。 所以我改变了我的代码: // modelA var Bookshelf = require('bookshelf); var modelB […]

如何使用Bookshelf.js模型进行primefaces更新?

例如,如果我想在MySQL查询中做如下的事情: update foo set bar = bar + ?; 我将如何使用Bookshelf.js模型实现这一点?

如何使用Express设置和检索BookshelfJS的实例?

我试图使用书架和Express 4.0 ,似乎无法让他们一起工作,或者说,我似乎无法遵循“最佳实践”。 书架文档提到,应始终在整个应用程序中重复使用同一个实例。 它甚至列举了一个例子: // When the app starts var app = express(); var knex = require('knex')(dbConfig); var bookshelf = require('bookshelf')(knex); app.set('bookshelf', bookshelf); // elsewhere, to use the bookshelf client: var bookshelf = app.get('bookshelf'); var Post = bookshelf.Model.extend({ // … }); 不过,当我不得不在独立的文件中使用app.get()时,我似乎无法得到它的工作。 例如,这里是我的app.js文件(我的整个应用程序的根目录): var express = require('express'); var app = express(); var db = […]

Bookshelf.js:如何定义交叉关系?

我怎样才能定义hasMany空间 – >账户关系? var Space = Bookshelf.Model.extend({ tableName : 'spaces', // Account variable does not exist :/ }); var Account = Bookshelf.Model.extend({ tableName : 'accounts', spaceId : function() { return this.belongsTo(Space); }, }); 什么是定义这个的正确方法? PS书架js库没有标签: http : //bookshelfjs.org/

如何将模型声明与数据库连接分开?

我想声明独立于特定连接configuration的模型。 一个理论代码将如下所示: const connection = require('bookshelf')(knex); // Declare User model. const User = require('bookshelf') .Model .extend({ tableName: 'user' }); // Fetch data for data model using a specific instance of Bookshelf. User .use(connection) .fetchAll(); .use是一种制造方法。 我无法在bookshelf.js API中find等效的方法。 希望达到这种分离水平的原因是为了实现独立的testing。

使用多个连接创build一个书架关系模型

是否有可能创build一个横跨多个表的书架关系模型? 例如,给定以下结构: Table "public.foo" Column | Type —————-+————— id | integer Table "public.bar" Column | Type —————-+————— id | integer foo_id | integer Table "public.baz" Column | Type —————-+————— id | integer bar_id | integer Table "public.wibble" Column | Type —————-+————— id | integer baz_id | integer wobble_id | integer Table "public.wobble" Column | Type […]

如何一次从多个表中获取书架模型

我正在开发一个看起来像一个拍卖的node.js web服务。 我使用bookshelf.js模型和MySQL作为数据库。 请考虑下面的db结构: users: id | login | password | users_roles: id | user_id | role_id | roles: id | name | auctions: id | user_id | rating_id | rating: id | speed | quality | communication | 目前我已经实现了用户模型如下: var Bookshelf = require('./bookshelf_model'), Role = require("./role"); var User = Bookshelf.Model.extend({ tableName: 'users', role: function […]

在Bookshelf JS中使用相关的集合

在使用Bookshelf Collections时遇到问题,而在API级别的文档中找不到答案,这很难说明如何将各个部分组合在一起。 使用Bookshelf的以下设置,包括模型registry插件: const knexConfig = require('../knexfile')[process.env.NODE_ENV || 'development']; const knex = require('knex')(knexConfig); const bookshelf = require('bookshelf')(knex); bookshelf.plugin('registry'); 假设存在以下模型: const Foo = bookshelf.model('Foo', { tableName: 'foos', bars: function() { return this.hasMany('Bar'); } }); const Bar = bookshelf.model('Bar', { tableName: 'bars', foo: function() { return this.belongsTo('Foo'); } }); 我们有一些批量操作,我们希望在整个Bar对象集上执行。 我们不想迭代每个Bar ,而是希望将其减less为单个查询。 所以我们创build一个Bars的集合: const Bars = bookshelf.Collection.extend({ […]