Sails.js、mongodb、waterline-ORMを使用してページ分割されたテーブルを作成したいと思います。
Sails.jsでページ分割を行う特定の方法はありますか?
http://sailsjs.org/#/documentation/concepts/ORM/Querylanguage.html
_Model.find().paginate({page: 2, limit: 10});
Model.find({ where: { name: 'foo' }, limit: 10, skip: 10 });
_
ページネーションを非同期で機能させたい場合は、JQUERY _$$.getJSON
_およびサーバーでres.json();
を使用すると非常に簡単です。
ウォーターラインと帆のドキュメントに多くの情報があります。
別の方法もあります。
フロントエンドからデータをフェッチする必要があり、ブループリントをオンにしている場合は、次の方法も試してください。 http://yourDomain.com/ModelName?skip=10&limit=1
リファレンス:1.officerサイト: http://sailsjs.org/#/documentation/reference/blueprint-api/Find.html
ブループリントルートの組み込みskip
&limit
クエリパラメーターを使用して、機能的なページネーターを構築できます。
/api/todos?skip=10&limit=10
このオプションを使用すると、さまざまなデバイスサイズに応じてページサイズを動的にサイズ設定できます。このオプションでは、基本的にページサイズであるlimit
を指定します。 (ページサイズ-1)に現在のページ番号を乗算します-skip
パラメーターを取得しました。
すべてのアイテムの数を取得する方法については、組み込みの方法を見つけられなかったため、ヘルパーミドルウェア( https://github.com/xtrinch/sails)を少し作成しました-pagination-middleware )レスポンスJSONの合計数を次のように返します。
{
"results": [
{
/* result here */
},
{
/* another result here */
}
],
"totalCount": 80
}
Npm経由でミドルウェアをインストールし、http.js
のミドルウェアに追加するだけです。
完全に機能する例が必要な場合は、githubでこの種のページ分割を使用したto-doアプリの例も用意しています: https://github.com/xtrinch/vue-sails-todo 。これはvueで書かれていますが、どちらの場合でもアイデアがわかるはずです。
この回答には帆1.xが必要であることに注意してください。
私はあなたもそれをioで行うことができると思います:
io.socket.get('/thing', {limit: 30, skip: 30*pageNum}, function(things, jwr) { /*...*/ })