1.Mine MongoDB Atlase veebilehele ja registreeri end.

2.Luua uus projekt

3.Loo uus klastri. Vali tasuta versioon


4.Minge jaotisesse Database & Network Access ja lisage uus kasutaja.



Valige Read and Write to any database ja Add user

4Lisage jaotises Network Access IP-aadress.
Kohaliku arendamise jaoks võib lisada juurdepääsu mis tahes IP-aadressilt (0.0.0.0/0).




5.Loo uus andmebaas, näiteks “games-api”, ja esimene kollektsioon, näiteks “games”.

Valige “Add my own data”


6.Klõpsake jaotises „Clusters” oma klastri jaoks nuppu „Connect”.
Kopeerige järgmine ühendusrea:

Valige “Drivers”

Kopeeri see rida

7.Installige Mongoose npm kaudu oma projekti kaustas: npm install mongoose
Ja nodejs kui on vaja

8.Lisage oma index.js-faili ühendus mongoose’iga.
const mongoose = require('mongoose');
const Game = require('../models/game');
const uri = 'mongodb+srv://User:<db_password>@cluster0.rfetsed.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0'
mongoose.connect(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => console.log('Connected to MongoDB Atlas'))
.catch((error) => console.error('Error connecting to MongoDB Atlas:', error));
Kuhu kirjutage oma parool ja lisage sinna oma andmebaasi nimi
const uri = 'mongodb+srv://User:1234@cluster0.rfetsed.mongodb.net/games-api?retryWrites=true&w=majority&appName=Cluster0'

9.Loome projekti õige struktuuri
Kopeerime index.html meie loodud kausta “public”

muuda faili nimega package.json, et „node“ saaks faili näha

10.Mudeli loomine Mongoose abil
Looge projektis kaust “models”.
Kaustas “models” looge fail “Game.js”.

Mongoose skeemi näide:
const mongoose = require('mongoose');
const gameSchema = new mongoose.Schema({
id: {
type: Number,
required: true,
unique: true
},
name: {
type: String,
required: true
},
price: {
type: Number,
required: true
}
}, { collection: 'games' });
module.exports = mongoose.model('Game', gameSchema);
11.MongoDB andmete töötlemiseks API loomine
app.get('/games', async (req, res) => {
try {
const games = await Game.find();
res.json(games);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
app.post('/games', async (req, res) => {
try {
const lastGame = await Game.findOne().sort({ id: -1 });
const newId = lastGame ? lastGame.id + 1 : 1;
const game = new Game({
id: newId,
name: req.body.name,
price: req.body.price
});
const newGame = await game.save();
res.status(201).json(newGame);
} catch (error) {
res.status(400).json({ message: error.message });
}
});
app.put('/games/:id', async (req, res) => {
try {
const game = await Game.findOne({ id: req.params.id });
if (!game) return res.status(404).json({ message: 'Game not found' });
game.name = req.body.name || game.name;
game.price = req.body.price || game.price;
const updatedGame = await game.save();
res.json(updatedGame);
} catch (error) {
res.status(400).json({ message: error.message });
}
});
app.delete('/games/:id', async (req, res) => {
try {
const result = await Game.deleteOne({ id: parseInt(req.params.id) });
if (result.deletedCount === 0) {
return res.status(404).json({ message: 'Game not found' });
}
res.json({ message: 'Game deleted successfully' });
} catch (error) {
res.status(500).json({ message: error.message });
}
});
Käivitame projekti käsuga „node .“

Kasutasin API-käskude kasutamiseks rakendust „Postman”
POST käsu



GET käsu


PUT käsu

DELETE käsu
