私は Bookshelf を試していて、それがどのように機能するかを学ぶための小さなプログラムを作成しました。
残念ながら、Knex は初期化されていないと不平を言っているため、実際には機能していないようです。
Bookshelf バージョン 0.3.1 と Knex バージョン 0.2.6 を使用しています。
簡単なテスト プログラムを実行すると、次のエラーが表示されます。
/home/joachimp/tmp/ks/db/node_modules/knex/knex.js:20 throw new Error('Knex インスタンスはまだ初期化されていません。'); ^ エラー: Knex インスタンスはまだ初期化されていません。 Knex (/home/joachimp/tmp/ks/db/node_modules/knex/knex.js:20:13) _.extend.builder (/home/joachimp/tmp/ks/db/node_modules/bookshelf/bookshelf.js:384:14) で クエリで (/home/joachimp/tmp/ks/db/node_modules/bookshelf/bookshelf.js:1294:35) _.extend.query (/home/joachimp/tmp/ks/db/node_modules/bookshelf/bookshelf.js:379:14) で 新しい Bookshelf.Sync (/home/joachimp/tmp/ks/db/node_modules/bookshelf/bookshelf.js:823:26) _.extend.sync (/home/joachimp/tmp/ks/db/node_modules/bookshelf/bookshelf.js:389:14) で _.extend.save (/home/joachimp/tmp/ks/db/node_modules/bookshelf/bookshelf.js:263:24) で オブジェクトで。(/home/joachimp/tmp/ks/db/dbtest.js:20:6) Module._compile で (module.js:456:26) Object.Module._extensions..js で (module.js:474:10)
プログラムは次のとおりです。
var Bookshelf = require('bookshelf');
Bookshelf.Initialize('sqlite3', {
client: 'sqlite3',
connection: {
filename : './dbtest.sqlite3'
}
});
var TestModel = Bookshelf.Model.extend({
tableName: 'TestModel',
initialize: function() {
},
name: 'foo'
});
var test = new TestModel;
test.save(); // <- Line 20
console.log('All done');
ドキュメントは不足しており、例はさらに不足しています。または、私はすでにそれを理解しているかもしれません。
また、コレクションを作成してモデル インスタンスを配置し、insert
メソッドで同期オブジェクトを使用しようとしました。Knex が初期化されていないという結果はすべて同じです。
私は何が欠けていますか?Knex を個別に初期化する必要がありますか? そして(はい、それがトピックから外れていることは知っています)簡単な例やチュートリアルから学ぶことはありますか?