任何人都知道如何在书架中执行SQL查询? 类似的东西:
bookshelf.query(sql).then(function(results) {
callback(null, results);
});
答案 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);
})