javascript - 书架JS : How to define relationship with a foreign key other than ID

标签 javascript sql node.js bookshelf.js

我有两个表:devicesdiagnostics

在注册设备之前运行诊断。会有一个 cpu_id 作为诊断运行的一部分保存。那么设备一旦注册,也会有一个cpu_id记录在其上。

这是多对一的关系,这里的外键是chip_id

我对两个表尝试了以下操作,但一无所获:

设备

diagnostics: function () {
    var Diagnostic = require('./db').model('Diagnostic');
    return this.hasMany(Diagnostic, 'chip_id');
}

诊断

device: function () {
    var Device = require('./config/db').model('Device');
    return this.belongsTo(Device, 'chip_id');
}

我做错了什么?

最佳答案

您需要在模型中定义 hasMany 和 BelongsTo,然后您需要像这样检索您的关系

Book.where({id: 1}).fetch({withRelated: ['author']}).then(function(book) {
   console.log(JSON.stringify(book.related('author')));
});

使用 withRelated 标记您需要该关系以及执行预先加载的相关函数

关于javascript - 书架JS : How to define relationship with a foreign key other than ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31841496/

相关文章:

javascript - 函数前的分号是什么意思?

javascript - 如何获取检查的输入长度

javascript - Electron 需求未定义

php - 如果存在更新,否则插入一个查询

node.js - json数组中的 Node 分页

javascript - 如何使 <a href> 仅在移动设备上处于事件状态?

php - 使用 JOIN 更新 sql 查询

mysql - 迭代游标后从 MySQL 函数返回值

mysql - 如何在POST body的基础上创建动态插入语句

javascript - Bluebird PromisifyAll 没有任何 Async 后缀,即可以替换原始功能吗?