var knex = require('knex')(config);
var bookshelf = require('bookshelf')(knex);
var SKU = bookshelf.Model.extend({
tableName: 'skus',
});
SKU.where('id', undefined).fetch().then(function (skus) {
if (skus) console.log(skus.toJSON());
}).catch(function (err) {
console.error(err);
});
它抛出
Undefined binding(s) detected when compiling SELECT query.
它在0.11.5下运行良好,在0.11.6以后停止运行。我现在指的是0.13.0。
useNullAsDefault: true
可用于插入查询,但不用于选择查询。是否需要传递任何标志来解决此错误?
最佳答案:
.where('id', undefined)where id IS NULL.whereNull('id')
SKU.fetch().then(function (skus) {
if (skus) console.log(skus.toJSON());
}).catch(function (err) {
console.error(err);
});
除非书架上多了些魔法…
useNullAsDefault: true
选项仅用于在一次插入中插入多行时。除非您正在使用sqlite,否则使用它是没有意义的(请检查http://knexjs.org/#Builder-insert的最后一个示例)。