私は別のAPIコールを呼び出して結果をループし、カスタムオブジェクトを作成して結果を返すコントローラを持っています。別のAPIを呼び出してページ設定を使用してデータを返す方法
ページネーションとフィルタを追加する最も良い方法は何ですか? 手動で行う前に、Sailsフレームワークでそれを行う方法があるはずです。
私の現在のコントローラのコードは次のとおりです。私は、ここに私のルートから呼び出されているそのわずかコントローラをモデルを使用していないことを考える何
request.get({
url: 'https://api.nytime.com/v1/articles?apiKey=xxxx&source=Client1'
}, function(error, response, body) {
if (error) {
sails.log.error(error);
}
else {
var asd = JSON.parse(body);
if (asd.status == 'error') {
sails.log.error(asd.message);
return res.send(asd);
return false;
}
var newRtnStr = new Array();
var b = new Object();
for (var i = 0; i < asd.articles.length; i++) {
b = {
"title": "" + asd.articles[i]["title"],
"source": "" + asd.articles[i]["author"],
"description": "" + asd.articles[i]["description"],
"link": "" + asd.articles[i]["url"],
"category": "NYTimes",
"media": asd.articles[i]["urlToImage"],
"rssdate": "" + asd.articles[i]["IL.pubdate"],
"id": "" + i,
"createdAt": "" + asd.articles[i]["publishedAt"],
"updatedAt": "" + asd.articles[i]["publishedAt"]
}
newRtnStr.push(b);
}
return res.send(newRtnStr);
。
青写真とサービスを使用してページングをフィルタリングして作成する方法について説明したチュートリアルに続いて、私のモデルはここでは空のため、どのように使用するのかはわかりません。
brueprintsフォルダとServiceUtilityService.jsの下にfind.jsがあり、サービスフォルダの下に来たら、このチュートリアルでは次のように呼び出します。
const Pagination = require('sails-pagination')
const buildParams = Pagination.build(q.query)
PublicNews
.find(buildParams)
.then((models) => {
return [
models,
PublicNews.count(buildParams)
]
})
「PublicNews」は私のモデルですが空です。上記のコードに基づいて、データを持ち、フィルタとページネーションが必要な私のカスタムオブジェクトは "newRtnStr"と呼ばれます。
がすでに確認されている場合は、このプラグイン(https://www.npmjs.com/package/sails-ページ区切り)はあなたにとって有用でしょうか? –
anglejsのようなものでクライアントサイドでページネーションを行うことはできませんか? –
あなたのコメントをありがとう、私はビルドとAPIは、クライアントサイドページングを使用することはできませんので、ページネーションとフィルタは、サーバー側で行う必要があります。 上記の質問を修正し、帆を使って直面している課題を示しました。 – ShyBoy