Node Express ist ein JavaScript-Framework, mit dem eine Vielzahl von Webanwendungen entwickelt werden kann. Es kann verwendet werden, um Web-APIs zu entwickeln, die von verschiedenen Client-Apps (Web-App oder mobile Apps) verwendet werden können. Die Daten-Paginierung muss für API-Antworten implementiert werden, die lange Datenlisten beinhalten. Dieser Artikel zeigt Ihnen Schritt für Schritt, wie die Daten-Paginierung in Node Express-APIs implementiert wird.
In diesem Beispiel geht es um eine Nachrichten-App.
Schritt 1: Erstellen Sie einen leeren Ordner namens newsapp .
$ mkdir newsapp
cd newsapp
$ npm init
$ npm install express --save
$ npm install mongoose --save
const mongoose = require('mongoose')
const mongoose = require('mongoose')
const ArticleSchema = new mongoose.Schema({
title: {
type: String,
required: true
},
content: {
type: String,
required: true
}
})
module.exports = mongoose.model('Article', ArticleSchema)
const mongoose = require('mongoose')
const ArticleSchema = new mongoose.Schema({
title: {
type: String,
required: true
},
content: {
type: String,
required: true
}
})
module.exports = mongoose.model('Article', ArticleSchema)
const express = require('express')
const newsapp = express()
const mongoosedb = require('mongoose')
const article = require('./articles')
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});
const db = mongoose.connection
db.once('open', async () => {
if (await article.countDocuments().exec() > 0) return
Promise.all([
article.create({ title: 'article 1',
content: "News content for article 1" }),
article.create({ title: 'article 2',
content: "News content for article 2" }),
article.create({ title: 'article 3',
content: "News content for article 3" }),
article.create({ title: 'article 4',
content: "News content for article 4" }),
article.create({ title: 'article 5',
content: "News content for article 5" }),
article.create({ title: 'article 6',
content: "News content for article 6" }),
article.create({ title: 'article 7',
content: "News content for article 7" }),
article.create({ title: 'article 8',
content: "News content for article 8" }),
article.create({ title: 'article 9',
content: "News content for article 9" }),
article.create({ title: 'article 10',
content: "News content for article 10" }),
article.create({ title: 'article 11',
content: "News content for article 11" }),
article.create({ title: 'article 12',
content: "News content for article 12" }),
article.create({ title: 'article 13',
content: "News content for article 13" })
]).then(() => console.log('Added Articles'))
})
function paginatedNewsArticles(model) {
return async (request, response, next) => {
const querypage = parseInt(request.query.page)
const querylimit = parseInt(request.query.limit)
}}
const firstIndex = (page - 1) * limit
const lastIndex = page * limit
if (firstIndex > 0) {
paginatedArticlesList.previous = {
previouspage: page - 1,
limit: limit
}
}
if (lastIndex < await model.countDocuments().exec()) {
paginatedArticlesList.next = {
nextpage: page + 1,
limit: limit
}
}
const express = require('express')
const newsapp = express()
const mongoosedb = require('mongoose')
const article = require('./articles')
mongoose.connect('mongodb://localhost/pagination', { useNewUrlParser: true, useUnifiedTopology: true })
const db = mongoose.connection
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', async () => {
if (await article.countDocuments().exec() > 0) return
Promise.all([
article.create({ title: 'article 1',
content: "News content for article 1" }),
article.create({ title: 'article 2',
content: "News content for article 2" }),
article.create({ title: 'article 3',
content: "News content for article 3" }),
article.create({ title: 'article 4',
content: "News content for article 4" }),
article.create({ title: 'article 5',
content: "News content for article 5" }),
article.create({ title: 'article 6',
content: "News content for article 6" }),
article.create({ title: 'article 7',
content: "News content for article 7" }),
article.create({ title: 'article 8',
content: "News content for article 8" }),
article.create({ title: 'article 9',
content: "News content for article 9" }),
article.create({ title: 'article 10',
content: "News content for article 10" }),
article.create({ title: 'article 11',
content: "News content for article 11" }),
article.create({ title: 'article 12',
content: "News content for article 12" }),
article.create({ title: 'article 13',
content: "News content for article 13" })
]).then(() => console.log('Added Articles'))
})
newsapp.get('/article', paginatedNewsArticles(article), (request, response) => {
response.json(response.paginatedResults)
})
function paginatedNewsArticles(model) {
return async (request, response, next) => {
const querypage = parseInt(request.query.page)
const querylimit = parseInt(request.query.limit)
const firstIndex = (page - 1) * limit
const lastIndex = page * limit
const paginatedArticlesList = {}
if (firstIndex > 0) {
paginatedArticlesList.previous = {
previouspage: page - 1,
limit: limit
}
}
if (lastIndex < await model.countDocuments().exec()) {
paginatedArticlesList.next = {
nextpage: page + 1,
limit: limit
}
}
try {
paginatedArticlesList.results = await
model.find().limit(limit).skip(firstIndex).exec()
response.paginatedArticles = paginatedArticlesList
next()
} catch (e) {
response.status(500).json({ message: e.message })
}
}}
newsapp.listen(3000)
Und da haben wir es. Ich hoffe, Sie fanden dies nützlich. Ich melde mich mit weiteren interessanten Artikeln zurück. Vielen Dank fürs Lesen.
Weitere Inhalte unter plainenglish.io
Wenn Sie eine Anfrage an facebook.com stellen, sucht Ihr Computer nach dem Domänennamen, um diesen in eine IP-Adresse zu übersetzen, damit Ihr Computer diese Verbindung herstellen kann.
Begeben Sie sich auf eine spannende Reise voller Innovation und Erfolg und erschließen Sie das ungenutzte Potenzial dieser überraschenden No-Code-Plattformen. Lassen Sie mich eine Geschichte über Sapna erzählen, eine bemerkenswerte Unternehmerin.
Wenn man erwachsen wird, wird einem oft gesagt, dass die Welt so ist, wie sie ist, und dass das Leben nur darin besteht, sein Leben in der Welt zu leben, niemals sein Leben zu riskieren, einfach einem festgelegten Weg zu folgen und am Ende zu sterben, und versucht, es nicht zu tun Schlage zu viel gegen die Wände. Aber das ist ein sehr begrenztes Leben.
Im Jahr 2022, mit der Veröffentlichung von GPT-3, scheinen Schreibfähigkeiten an Bedeutung zu verlieren. Mit KI können auch Menschen mit schlechten Schreibkenntnissen hochwertiges Personal hervorbringen.
Um Unklarheiten zu vermeiden, werden die folgenden Begriffe verwendet: Authentifikator; Das Mobiltelefon, das für die Anmeldung verwendet wird. Website; Die Website oder Anwendung, die der Benutzer verwendet, um den Anmeldeanforderungsdienst zu stellen; Der Anbieter, der die jeweilige Dienstleistung bereitstellt, z
Gestern haben wir die Tür zum diesjährigen Eurovision Song Contest mit einem glitzernden, chaotischen großen Finale geschlossen, bei dem die schwedische Sängerin Loreen die Trophäe mit nach Hause nahm. Sie war damit die erste Frau, die zweimal gewann, und holte die Krone 50 Jahre nach dem Gewinn des Wettbewerbs durch ABBA zurück nach Schweden mit „Waterloo“. Sie entwickelten sich zu einem der größten Acts im Kanon der Popmusik.