Felhasználói eszközök

Eszközök a webhelyen


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.

Összehasonlító nézet linkje

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ó] adminoktatas:web:back-end_framework:express:mongodb_adatbazis [2025/08/01 10:22] (aktuális) – eltávolítva admin
Sor 1: Sor 1:
-[[:oktatas:web:back-end_framework:express|< Express]] 
- 
-====== Express - MongoDB adatbázis ====== 
- 
-  * **Szerző:** Sallai András 
-  * Copyright (c) Sallai András, 2023 
-  * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] 
-  * Web: https://szit.hu 
- 
-===== 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://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-debian/ 
- 
-  apt install mongodb-org 
- 
- 
-  systemctl status mondgod 
- 
-===== Kliens ===== 
- 
-Linuxon: 
-  mongo 
- 
-===== Docker ===== 
- 
- 
-Töltsük le a képfájlt: 
-  docker pull mongodb/mongodb-community-server 
- 
-Indítsunk belőle konténert: 
-  docker run --name mongo -d mongodb/mongodb-community-server:latest 
- 
-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/models/database.js> 
-const mongoose = require('mongoose'); 
-  
-const conString = 'mongodb://127.0.0.1:27017/emp'; 
-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('Employee', employeeSchema); 
- 
-module.exports = { 
-    Employee 
-}; 
-</code> 
- 
- 
-<code javascript app/controllers/employeecontrollers.js> 
-const { Employee } = require('../models/database'); 
-//... 
- 
-    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 
-        }); 
-    }, 
-</code> 
- 
-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: 
-<code> 
-http post localhost:8000/api/employees  
-name='aaaa' city='Szeged' salary=357 
-</code> 
- 
-Indítsuk el a MongoDB Shell-t: 
-  mongo 
- 
-Megnézhetjük a létező adatbázisokat: 
-<code> 
-> show dbs 
-</code> 
- 
-Kapcsolódjunk az emp adatbázishoz: 
-<code> 
-> use emp 
-</code> 
- 
-Nézzük meg milyen kollekcióink vannak: 
-<code> 
-> show collections 
-</code> 
- 
-A modellek kollekciókra képződnek le. 
- 
-<code> 
-> db.employee.find() 
-</code> 
- 
- 
-A kimenet ehhez hasonló kell legyen: 
- 
-<code> 
-{ "_id" : ObjectId("647ca006579fd6808558cfa7"),  
-"name" : "aaaa", "city" : "Szeged",  
-"salary" : 357, "__v" : 0 } 
-</code> 
- 
-==== Dolgozók lekérdezése ==== 
- 
-<code javascript app/controllers/employeecontrollers.js> 
-    async index(req, res) { 
-        const allEmployees = await Employee.find(); 
-        res.json({  
-            success: true, 
-            data: allEmployees, 
-            message: 'Ok' 
-        }); 
-    }, 
-</code> 
- 
-==== Dolgozó törlése ==== 
- 
-<code javascript src/controllers/employeecontrollers.js> 
-    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: 'Ok' 
-        }); 
-    }, 
-</code> 
- 
-==== Dolgozó módosítása ==== 
- 
-<code javascript app/controllers/employeecontrollers.js> 
-    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: 'Ok' 
-        }); 
-    } 
-</code> 
- 
-===== Felhasználó ===== 
- 
- 
-<code javascript app/models/database.js> 
-const mongoose = require('mongoose'); 
-  
-const conString = 'mongodb://127.0.0.1:27017/emp'; 
-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('Employee', employeeSchema); 
-const User = mongoose.model('User', userSchema); 
- 
-module.exports = { 
-    Employee, 
-    User 
-}; 
-</code> 
- 
-===== Linkek ===== 
- 
-  * https://dev.to/franciscomendes10866/setup-mongodb-with-mongoose-and-express-4c58 (2023) 
-  * https://rahmanfadhil.com/express-rest-api/ (2023) 
- 
  
oktatas/web/back-end_framework/express/mongodb_adatbazis.1716315875.txt.gz · Utolsó módosítás: 2024/05/21 20:24 szerkesztette: admin