创建模型实例时如何在Bookshelfjs中使用模型关系

时间:2018-06-29 05:18:57

标签: node.js database postgresql orm

Bookshelf具有完善的API,但示例并不多。我正在尝试使用干净的代码创建一个具有hasOne管理器的用户。这就是我尝试过的。这是我的问题。

当我调用此功能寄存器时。

var User = require('../models/User_model'),
  Manager = require('../models/Manager_model')
  Ump = require('../models/Ump_model')

module.exports = {
  register: function(new_user, is_manager){
    return new Promise(function(reslove, reject){
        if(is_manager == 1){
            user = new User(new_user).manager()
        } else {
            user = new User(new_user).ump()
        }
        user.save(new_user).then(function(user){
            reslove(user)
        }).catch(function(err){
            reject(err)
        })
    })
}

在通过调用函数解决了诺言之后,我将新用户登录到控制台。

ModelBase {
  attributes: 
   { id: 'fa965848-f9be-437a-bdb7-506da0c4b24f',
 user_id: undefined },
_previousAttributes: 
{ id: 'fa965848-f9be-437a-bdb7-506da0c4b24f',
 user_id: undefined },
changed: {},
relations: {},
cid: 'c2',
defaults: { id: 'fa965848-f9be-437a-bdb7-506da0c4b24f' },
relatedData: 
RelationBase {
 targetTableName: 'managers',
 targetIdAttribute: 'id',
 type: 'hasOne',
 target: 
  { [Function]
    super_: [Function: Events],
    extend: [Function: extend],
    extended: [Function: extended],
    __super__: [ModelBase],
    NotFoundError: [Function: ErrorCtor],
    NoRowsUpdatedError: [Function: ErrorCtor],
    NoRowsDeletedError: [Function: ErrorCtor],
    forge: [Function: forge],
    collection: [Function: collection],
    count: [Function: count],
    fetchAll: [Function: fetchAll],
    where: [Function],
    query: [Function],
    schema: [Array],
    new: [Function: new] },
 foreignKey: 'user_id',
 foreignKeyTarget: undefined,
 parentId: undefined,
 parentTableName: 'users',
 parentIdAttribute: 'id',
 parentAttributes: 
  { firstname: 'Gary',
    lastname: 'Miller',
    username: 'gmiller',
    email: 'garymillerr17@gmail.com',
    password: '123dfsdfgS',
    avi: 'photo' },
 parentFk: undefined },
 id: 'fa965848-f9be-437a-bdb7-506da0c4b24f',

什么也没有保存在我的用户表和管理器表中,它的ID为所有空列。我知道我的数据库设置正确,因为我之前已经创建了新的用户和管理器,但是我使用了嵌套的Promise,但这不是很好的代码。

如何一次创建并保存模型及其父模型?

0 个答案:

没有答案