У меня есть мелкий
проект
Там MERN стек - MongoDB / Express / React / NodeJS, может поможет
А ванильный пример будет выглядеть как-то так:
Для начала надо вообще сказать монго на пк, а потом и в проект
npm install mongodb
Потом можно в папке server подключиться к БД
const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017'; // URL базы данных
const dbName = 'mydatabase'; // Имя базы данных
const client = new MongoClient(url);
async function connectToDatabase() {
try {
await client.connect();
console.log('Connected to the database');
return client.db(dbName);
} catch (error) {
console.error('Error connecting to the database:', error);
}
}
module.exports = connectToDatabase;
Делаем базовые маршруты
const express = require('express');
const connectToDatabase = require('./db'); // Путь к файлу подключения к базе данных
const app = express();
app.use(express.json());
// Маршрут для сохранения данных в базу данных
app.post('/data', async (req, res) => {
const { email, phoneNumber, fullName } = req.body;
try {
const db = await connectToDatabase();
const collection = db.collection('data'); // Имя коллекции
const result = await collection.insertOne({
email,
phoneNumber,
fullName,
});
res.status(201).json(result.ops[0]); // Отправить сохраненный документ обратно клиенту
} catch (error) {
console.error('Error saving data to the database:', error);
res.status(500).json({ error: 'An error occurred' });
}
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
Ну и базовая разметка
<form action="/data" method="POST">
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<label for="phoneNumber">Phone Number:</label>
<input type="tel" id="phoneNumber" name="phoneNumber" required>
<label for="fullName">Full Name:</label>
<input type="text" id="fullName" name="fullName" required>
<button type="submit">Submit</button>
</form>
require лучше заменить на import (в packages.json указать надо
"type": "module")