sails.js - 在 Sailsjs 中创建父/子关联记录

标签 sails.js waterline

我很难弄清楚 sails/水线是否能做到这一点。 (所以一个足够的答案就是这是否可能,我一直在阅读文档,浏览 github 问题并浏览代码,但仍然不确定)

我有一个一对一的关联设置,其中“帐户”有一个“联系人”

我正在尝试在 sails 蓝图中创建联系人(所以基本上只使用 create() 方法)

account = 
{ name: 'Corp'
     contact:{
       firstName: 'Bob',
       lastName: 'Jones'
     }
}

那么 Account.create(account).exec() 应该创建帐户和关联的联系人吗?因为我收到以下错误

TypeError: Cannot convert null to object

我的模型是这样设置的

account.js
module.exports = {
  migrate: 'safe',
  tableName: 'accounts',
  autoPK: false,
  attributes: {
        id: {
                type: 'INTEGER', 
                primaryKey: true,
                autoIncrement: true
            },
        contactId: 'INTEGER',
        name: {type: 'STRING', maxLength: 100},

        contact: {
            model: 'contact',
            columnName:'contactId'
        }

    }
};

我使用的是 sails 10.0-rc8/水线 10.0-rc15

最佳答案

与其父实例同时创建关联实例(也称为“嵌套创建”)应该可行,但在处理遗留数据库时,要让事情恰到好处是很棘手的。在您的情况下, contactId 属性声明可能会导致问题,因为 Waterline 期望外键字段是隐式的,而不是显式的。尝试删除:

contactId: 'INTEGER',

完全看看你会得到什么。

关于sails.js - 在 Sailsjs 中创建父/子关联记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24591711/

相关文章:

javascript - Sails JS - 嵌套的 .query 方法不运行序列

sails.js - 从 javascript 对象构造水线模型对象

node.js - 水线: Trying to access a collection string that is not defined

sql - Waterline ORM 相当于在重复键更新时插入

node.js - sails.js 服务中的水线错误实现

node.js - 如何格式化 sails.js 模型的日期时间

mysql - Heroku 上的 sails 没有升起

npm - SailsJS 在 View 中包含 node_module

ruby-on-rails - 前端和后端均采用 Ruby

node.js - KOA响应错误水线