如何在Node.js中使用书架和mysql联接两个表

时间:2019-01-05 13:59:26

标签: mysql node.js express join bookshelf.js

尝试使用Bookshelf和mysql从两个表中获取数据,但数据仅来自第一个表

-------这里的诊所模型--------------

import bookshelf from '../config/bookshelf';
import Clinic_time from '../models/clinic_time.model';
/**
 * Clinic model.
 */
class Clinic extends bookshelf.Model {
    get tableName() {
        return 'clinics';
    }

    get hasTimestamps() {
        return true;
    }

    Clinic_time() {
        return this.hasMany(Clinic_time,'clinic_id');
    }

}

export default Clinic;

----------------------------------------------------------------------
import bookshelf from '../config/bookshelf';
import Clinic from '../models/clinic.model';
/**
 * Clinic_time model.
 */

-------这里的诊所时间模型--------------

class Clinic_time extends bookshelf.Model {
    get tableName() {
        return 'clinic_times';
    }

    get hasTimestamps() {
        return false;
    }

    Clinic() {
        return this.belongsTo(Clinic,'id');
    }
}

export default Clinic_time;

-------这里的诊所控制器--------------

export function findById(req, res) {

    Clinic.forge({id: req.params.id})
    .fetch({withRelated: [Clinic_time]})
    .then(clinic => {
        console.log(clinic);
        if (!clinic) {

            res.status(HttpStatus.NOT_FOUND).json({
                error: true, data: {}
            });
        }
        else {
            res.json({
                error: false,
                data: clinic.toJSON()
            });
        }
     })
     .catch(err => res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({
         error: err
     })
  );
}
控制器响应中的

仅来自诊所表,而没有来自临床时间表的数据。但是我需要同时从两个表中获取。

0 个答案:

没有答案