如何在书架中执行SQL查询

时间:2016-05-05 06:29:18

标签: bookshelf.js

任何人都知道如何在书架中执行SQL查询? 类似的东西:

bookshelf.query(sql).then(function(results) {
    callback(null, results);
});

1 个答案:

答案 0 :(得分:2)

您无法在Bookshelf.js中执行原始查询。如果你愿意,可以这样使用Knex.js(由Bookshelf使用):

const myId = 42;
knex.raw('SELECT * FROM MyTable WHERE id = ?', [myId])
.then(result => {
    console.log(result);
}, error => {
    console.log(error);
});

Bookshelf.js是一个ORM,您可以在其中声明Javascript项目中的每个表,并使用这些模型从数据库中检索数据。

这是一个例子。

const Company = db.bookshelf.Model.extend({
    tableName: 'companys',
    hunters: function employees() {
        return this.hasMany(Employee, 'company_id');
    }
});

const Employee = db.bookshelf.Model.extend({
    tableName: 'employees',
    company: function company() {
        return this.belongsTo(Company);
    }
});

Company.where({ id: 42 }).fetch([ withRelated: 'employees' ])
.then(result => {
    console.log(result);
}, error => {
    console.log(error);
})