페이지 네이션 (Sagination)을 구현하는 데 어려움이 있습니다. 몇 가지 예제 코드 나 힌트 만 있으면 올바른 방향으로 나아갈 수 있습니다.Google Datastore의 NodeJS Express 페이지 매김 커서 컨트롤을 UI 컨트롤과 통합하는 방법
Google Datastore 데이터베이스 커서를 프런트 엔드 UI 페이지 매김 컨트롤과 통합하는 방법에 대한 지침이 필요합니다. 나는 각진 페이지 매김 서비스를 만드는 방법을 알고 있지만, 한번에 모든 데이터를 가져 오는 것과 성능 문제 (5,000 레코드 +) 때문에 커서를 사용하여 부분 집합의 데이터를 검색하려고합니다.
참고 : 여기에도 비슷한 질문이 있지만 허용 된 대답보다 자세한 내용이 필요합니다. Node pagination in google datastore
질문 :가 어떻게 UI는 사용자가 각 페이지에 표시되는 결과의 현재 페이지 및 관리 번호를 선택할 수 있도록 제어하는 프론트 엔드로 매겨진 데이터 스토어 커서 쿼리를 통합 할 수 있습니다?
동적 페이지 매김을 사용하여 많은 수의 레코드를 표시하는 페이지를 작성해야합니다. 사용자는 각 페이지에 표시되는 레코드 수를 선택할 수 있어야합니다.
한 번에 수천 개의 레코드가 반환 될 수 있으므로 커서를 사용하여 데이터의 하위 집합을 검색하려고합니다.
문서에서 페이지 매김하는 방법의 예가 있지만 이는 매우 기본적인 예이며 프런트 엔드 UI 컨트롤과 통합하는 방법을 보여주지 않습니다.
더 자세한 예를 제공하거나이 요구 사항의 시작 위치를 올바른 방향으로 안내해 줄 수있는 사람이 있습니까? 불행히도 온라인에서 자세한 예제를 찾을 수 없었습니다.
https://googlecloudplatform.github.io/google-cloud-node/#/docs/datastore/1.1.0/datastore
명심해야 할
var express = require('express');
var app = express();
var NUM_RESULTS_PER_PAGE = 15;
app.get('/contacts', function(req, res) {
var query = datastore.createQuery('Contacts')
.limit(NUM_RESULTS_PER_PAGE);
if (req.query.nextPageCursor) {
query.start(req.query.nextPageCursor);
}
datastore.runQuery(query, function(err, entities, info) {
if (err) {
// Error handling omitted.
return;
}
// Respond to the front end with the contacts and the cursoring token
// from the query we just ran.
var frontEndResponse = {
contacts: entities
};
// Check if more results may exist.
if (info.moreResults !== datastore.NO_MORE_RESULTS) {
frontEndResponse.nextPageCursor = info.endCursor;
}
res.render('contacts', frontEndResponse);
});
});
고마워요! 나는 커서의 한계를 알고있다. 페이징을 프론트 엔드 UI 컨트롤과 통합하는 방법에 대한 지침을 찾고 있습니다. 각진 페이지 매김 서비스를 만드는 방법을 알고 있지만, 모든 데이터를 한꺼번에 가져 오는 것이므로 데이터베이스 커서를 사용하여 설정하는 방법을 모릅니다. – pengz