Andmebaasi sidumine

Login end sisse cloud.mongodb.com

Loon uus projekt ja cluster

Salvestan lingi andmebaasi ühendamiseks

mongodb+srv://anton9032_db_user:@webstore-api.vffcf9c.mongodb.net/?retryWrites=true&w=majority&appName=webstore-api

Loon uus andmebaas ja kollektsioon.

Projektis:

Laen alla mongoose

npm install mongoose

Lisan uus kood anmebaasi ühendamiseks index.js’is:

const Product = require('./models/product');
const mongoose = require('mongoose');
 
const uri = 'mongodb+srv://anton9032_db_user:oleksandrbohatyrov@cluster0.crul0.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));

Lisan andmete mudel models/product.js

const mongoose = require('mongoose');

const productSchema = new mongoose.Schema({
  id: {
    type: Number,
    required: true,
    unique: true
  },
  name: {
    type: String,
    required: true
  },
  price: {
    type: Number,
    required: true
  }
});

const Product = mongoose.model('Product', productSchema);

module.exports = Product;

Muudatud API endpoint’id mongodb kasutamiseks.

// list
app.get('/products', async (req, res) => {
  try {
    const products = await Product.find();
    res.json(products);
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
});

// add
app.post('/products', async (req, res) => {
  try {
    const lastProduct = await Product.findOne().sort({ id: -1 });
    const newId = lastProduct ? lastProduct.id + 1 : 1;

    const product = new Product({
      id: newId,
      name: req.body.name,
      price: req.body.price
    });

    const newProduct = await product.save();
    res.status(201).json(newProduct);
  } catch (error) {
    res.status(400).json({ message: error.message });
  }
});

// delete
app.delete('/products/:id', async (req, res) => {
  try {
    const product = await Product.findOne({ id: req.params.id });
    if (!product) return res.status(404).json({ message: 'Product not found' });

    await product.deleteOne();
    res.status(204).send();
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
});

Kontroll

Lõpplik projekti faili stuktuur:

Scroll to Top