Greičio ribojimas yra strategija, kurią galite naudoti srautui tinkle valdyti. Tai riboja užklausų, kurias vartotojas gali pateikti per tam tikrą laikotarpį, skaičių.
Egzistuoja įvairūs greitį ribojantys algoritmai, kurių kiekvienas turi savo kompromisus. Vienas paprastas ir populiarus būdas yra sekti užklausų IP adresus ir patikrinti, kiek laiko praeina tarp užklausų. Tada sistema gali atmesti užklausą, jei jos IP adresas viršija leistiną užklausų skaičių.
DIENOS VAIZDO ĮRAŠO PAGALBA
Šį greičio ribojimo metodą lengva sukurti „NodeJS-Express“ programoje, atlikus vos kelis veiksmus.
1 veiksmas: kūrimo aplinkos nustatymas
Pirmiausia turėsite sukurti ir inicijuoti „Express“ programą.
Pradėkite kurdami projekto katalogą paleisdami:
mkdir express-app
Tada įveskite tą katalogą paleisdami:
nemokami mobiliųjų telefonų atrakinimo kodai (visiškai teisėti)
cd express-app
Toliau inicijuokite npm, mazgo paketų tvarkyklė, ir sukurti a package.json failą savo programoje paleisdami:
npm init -y
The -Y vėliava sukurs jūsų package.json failą su visais numatytais nustatymais.
Tada turėsite įdiegti kai kurias priklausomybes. Šiai mokymo programai reikalingos priklausomybės:
- ExpressJS: ExpressJS yra NodeJS sistema kuri suteikia tvirtą funkcijų rinkinį žiniatinklio ir mobiliosioms programoms. Tai supaprastina užpakalinių programų kūrimo procesą naudojant NodeJS.
- Greitojo tarifo limitas : Greitojo greičio limitas yra greitį ribojanti tarpinė programinė įranga, skirta ExpressJS. Tai riboja pakartotines užklausas viešosioms API ir (arba) galutiniams taškams, pvz., slaptažodžio nustatymui iš naujo, naudotojų prisijungimams ir kt.
Įdiekite reikiamas priklausomybes paleisdami:
npm install express express-rate-limit
2 veiksmas: greitosios programos kūrimas
Turėsite sukurti pagrindinį „Express“ serverį, kuris išklausys jūsų programai teikiamas užklausas.
Pirmiausia sukurkite an index.js failą savo projekto šakniniame kataloge. Tai bus jūsų paraiškos įvedimo failas.
Tada pridėkite šį kodą prie savo index.js failas:
geriausia vieta pirkti vaizdo žaidimus
// index.js
const express = require("express");
const app = express();
const port = process.env.PORT || 3000
app.listen(port, () => {
console.log(`App running on port ${port}`);
});
Šis kodas importuojamas išreikšti ir sukuria „Express“ programą iškviesdamas express() ir išsaugodamas jos grąžinamąją reikšmę programėlė kintamasis. Tada jis klauso srauto uoste 3000 paskambinus į klausyk metodas ant programėlė objektas.
3 veiksmas: maršruto tvarkyklių kūrimas
Tada sukurkite keletą maršrutų tvarkytuvų, kuriuose galite įdiegti greičio ribojimo sprendimą.
Pirmiausia sukurkite aplanką, maršrutus savo projekto šakniniame kataloge vykdydami:
mkdir routes
Sukurti failą, routes.js , aplanke maršrutai ir pridėkite šį kodą:
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
res.send({ message: "Hello, this is a GET request" });
});
router.post("/add-demo", (req, res) => {
res.status(201).send({ message: "Resource created successfully" });
});
router.put("/update-demo", (req, res) => {
res.status(201).send({ message: "Resource updated sucessfully" });
});
module.exports = router;
Šis kodas importuojamas išreikšti , skambina Maršrutizatorius metodas įjungtas išreikšti ir išsaugo reikšmę kintamajame, maršrutizatorius . The Maršrutizatorius metodas leidžia kurti modulinius, montuojamus maršrutų tvarkykles. Galite sukurti maršruto tvarkykles a GAUTI prašyti ' / “, a PAST prašyti ' /add-demo “ ir a PUT prašyti ' /update-demo “. Galiausiai eksportuokite maršrutizatorius kintamasis.
Tada importuokite maršrutizatorius kintamasis jūsų index.js failas:
// index.js
const routes = require("./routes/routes");
Tada naudokite jį kaip tarpinę programinę įrangą faile index.js:
// index.js
app.use(routes);