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,但这不是很好的代码。
如何一次创建并保存模型及其父模型?