oktatas:web:back-end_framework:express:mongodb_adatbazis
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:back-end_framework:express:mongodb_adatbazis [2024/05/21 20:24] – [Felhasználó] admin | oktatas:web:back-end_framework:express:mongodb_adatbazis [2025/08/01 10:22] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[: | ||
- | |||
- | ====== Express - MongoDB adatbázis ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) Sallai András, 2023 | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Szerver ===== | ||
- | |||
- | ==== Windows Chocolatey ==== | ||
- | |||
- | choco install mongodb | ||
- | |||
- | A szerver automatikusan elindul. | ||
- | |||
- | Ellenőrzés: | ||
- | sc query | ||
- | sc query | more | ||
- | sc query mongodb | ||
- | |||
- | ==== Linuxon ==== | ||
- | |||
- | Végezzük el az előkészületeket a weboldal szerint: | ||
- | * https:// | ||
- | |||
- | apt install mongodb-org | ||
- | |||
- | |||
- | systemctl status mondgod | ||
- | |||
- | ===== Kliens ===== | ||
- | |||
- | Linuxon: | ||
- | mongo | ||
- | |||
- | ===== Docker ===== | ||
- | |||
- | |||
- | Töltsük le a képfájlt: | ||
- | docker pull mongodb/ | ||
- | |||
- | Indítsunk belőle konténert: | ||
- | docker run --name mongo -d mongodb/ | ||
- | |||
- | Futó konténerek kezelése: | ||
- | docker container ls | ||
- | |||
- | Kapcsolódás a szerverhez: | ||
- | docker exec -it mongo mongosh | ||
- | |||
- | |||
- | ===== Függőségek ===== | ||
- | |||
- | A Mongoose egy dokumentum leképező rendszer, egy ODM azaz Object-Document Mapping. | ||
- | |||
- | pnpm install mongoose | ||
- | |||
- | |||
- | ===== Dolgozók adatbázisban ===== | ||
- | |||
- | <code javascript app/ | ||
- | const mongoose = require(' | ||
- | |||
- | const conString = ' | ||
- | mongoose.connect(conString); | ||
- | |||
- | const employeeSchema = new mongoose.Schema({ | ||
- | name: { type: String, required: true }, | ||
- | city: { type: String, required: true }, | ||
- | salary: { type: Number, required: true } | ||
- | }); | ||
- | |||
- | const Employee = mongoose.model(' | ||
- | |||
- | module.exports = { | ||
- | Employee | ||
- | }; | ||
- | </ | ||
- | |||
- | |||
- | <code javascript app/ | ||
- | const { Employee } = require(' | ||
- | //... | ||
- | |||
- | async store(req, res) { | ||
- | console.log(req.body); | ||
- | if(!req.body.name) { | ||
- | res.status(400); | ||
- | res.json({ | ||
- | success: false, | ||
- | message: 'Bad request' | ||
- | }); | ||
- | } | ||
- | const newEmployee = new Employee(req.body); | ||
- | const insertedEmployee = await newEmployee.save(); | ||
- | res.status(201) | ||
- | res.json({ | ||
- | success: true, | ||
- | message: insertedEmployee | ||
- | }); | ||
- | }, | ||
- | </ | ||
- | |||
- | A newEmployee.save() utasítást muszáj await előtaggal, mert másként nem kapjuk meg a beszúrt adatokat. | ||
- | |||
- | ==== Ellenőrzés ==== | ||
- | |||
- | Küldjünk egy HTTP klienssel egy felhasználót: | ||
- | < | ||
- | http post localhost: | ||
- | name=' | ||
- | </ | ||
- | |||
- | Indítsuk el a MongoDB Shell-t: | ||
- | mongo | ||
- | |||
- | Megnézhetjük a létező adatbázisokat: | ||
- | < | ||
- | > show dbs | ||
- | </ | ||
- | |||
- | Kapcsolódjunk az emp adatbázishoz: | ||
- | < | ||
- | > use emp | ||
- | </ | ||
- | |||
- | Nézzük meg milyen kollekcióink vannak: | ||
- | < | ||
- | > show collections | ||
- | </ | ||
- | |||
- | A modellek kollekciókra képződnek le. | ||
- | |||
- | < | ||
- | > db.employee.find() | ||
- | </ | ||
- | |||
- | |||
- | A kimenet ehhez hasonló kell legyen: | ||
- | |||
- | < | ||
- | { " | ||
- | " | ||
- | " | ||
- | </ | ||
- | |||
- | ==== Dolgozók lekérdezése ==== | ||
- | |||
- | <code javascript app/ | ||
- | async index(req, res) { | ||
- | const allEmployees = await Employee.find(); | ||
- | res.json({ | ||
- | success: true, | ||
- | data: allEmployees, | ||
- | message: ' | ||
- | }); | ||
- | }, | ||
- | </ | ||
- | |||
- | ==== Dolgozó törlése ==== | ||
- | |||
- | <code javascript src/ | ||
- | async delete(req, res) { | ||
- | if(!req.params.id) { | ||
- | res.status(400); | ||
- | res.json({ | ||
- | success: false, | ||
- | message: 'Bad request' | ||
- | }); | ||
- | } | ||
- | const id = req.params.id; | ||
- | const deletedEmployee = await Employee.findByIdAndDelete(id); | ||
- | res.status(200); | ||
- | res.json({ | ||
- | success: true, | ||
- | data: deletedEmployee, | ||
- | message: ' | ||
- | }); | ||
- | }, | ||
- | </ | ||
- | |||
- | ==== Dolgozó módosítása ==== | ||
- | |||
- | <code javascript app/ | ||
- | async update(req, res) { | ||
- | if(!req.params.id || !req.body.name) { | ||
- | res.status(400); | ||
- | res.json({ | ||
- | success: false, | ||
- | message: 'Bad request' | ||
- | }); | ||
- | } | ||
- | | ||
- | const _id = req.params.id; | ||
- | |||
- | await Employee.updateOne({ _id }, req.body); | ||
- | const updatedEmployee = await Employee.findById(_id); | ||
- | res.status(200); | ||
- | res.json({ | ||
- | success: true, | ||
- | body: updatedEmployee, | ||
- | message: ' | ||
- | }); | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Felhasználó ===== | ||
- | |||
- | |||
- | <code javascript app/ | ||
- | const mongoose = require(' | ||
- | |||
- | const conString = ' | ||
- | mongoose.connect(conString); | ||
- | |||
- | const employeeSchema = new mongoose.Schema({ | ||
- | name: { type: String, required: true }, | ||
- | city: { type: String, required: true }, | ||
- | salary: { type: Number, required: true } | ||
- | }); | ||
- | |||
- | const userSchema = new mongoose.Schema({ | ||
- | username: { type: String, required: true }, | ||
- | email: { type: String, required: true }, | ||
- | password: { type: String, required: true }, | ||
- | }); | ||
- | |||
- | const Employee = mongoose.model(' | ||
- | const User = mongoose.model(' | ||
- | |||
- | module.exports = { | ||
- | Employee, | ||
- | User | ||
- | }; | ||
- | </ | ||
- | |||
- | ===== Linkek ===== | ||
- | |||
- | * https:// | ||
- | * https:// | ||
- | |||
oktatas/web/back-end_framework/express/mongodb_adatbazis.1716315875.txt.gz · Utolsó módosítás: 2024/05/21 20:24 szerkesztette: admin