tony-stark77
@tony-stark77
Frontend developer (senior+)

Как создать базу данных и связать с JAVASCRIPT?

Вот мне сказал заказчик "а насколько будет возможно к этому сайту сделать бд чтобы люди могли оставить свою почту номер и фио, чтобы это в бд и сохранялось"

Я даже представления не имею (если только небольшое) о бд(
Не знаю с чего начать и что делать...
Единственное что надо я это точно знаю что, нода без php и mongo или sqlite ну лучше первый...
А как что скрещивать и как с html это всё не знаю... подскажете?

пс сайт простой там 10 макс. продуктов
  • Вопрос задан
  • 568 просмотров
Решения вопроса 1
scoffs
@scoffs
Frontend | C# | Student
У меня есть мелкий проект
Там 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")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы