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

    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")
    Ответ написан
    3 комментария
  • Как включить визуальный эффекты на Windows Server 2019 для всех?

    @Resharpov Автор вопроса
    Отвечу сам на свой вопрос

    Проблема была в том, что даже при выдаче прав Администратора пользователю, при повторном входе все настройки сбрасывались. Оказывается, нужно не только править визуальные эффекты на стороне сервера, но так же менять и файл подключения по RDP, указав широкополосное подключение
    Ответ написан
    Комментировать
  • Как вернуть значение обратно в web форму из NODE?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Если хотите получить ответ на отправленное сообщение - нужно задать ф-ю которая будет этот ответ обрабатывать. Это третий параметр метода post:
    $.post("/index", {
                        name: "ТЕСТ",
                        designation: "FN_TAST",
                    }, function( data ) { //  передаем и загружаем данные с сервера с помощью HTTP запроса методом POST
    	      $( "div" ).html( data ); // вставляем в элемент <div> данные, полученные от сервера
    	    });
    Ответ написан
    3 комментария
  • Как реализовать "живой" поиск на базе Node и MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Если подразумевается что поиск будет производиться прямо во время набора текста в поле ввода, то довольно простая схема:

    На поле набора вешается онкейап листенер,
    по событию содержимое поля отправляется аяксом на сервер,
    там делается выборка нескольких значений, удовлетворяющих поисковой строке,
    обратно присылается этот набор, либо в виде жсон и дальше парсится в хтмл, либо сразу сформированный хтмл,
    данные лепятся как список ниже поисковой строчки, на кнопки вниз/вверх подсвечиваем строки из подсказки (фокус с поля надо убрать),
    по ентеру в поле вносим полную строку из подсказки и субмитим форму поиска, либо по клику тоже самое.

    Нюанс: По кейап надо ставить небольшую паузу, чтобы не спамить запросами.
    Ответ написан
    Комментировать
  • Как правильно настроить переадресацию с 80 на 443 порт в nginx proxypass?

    Сделайте два блока, не пишите 80 и 443 в одном server

    server {
    listen 80;
    server_name ИМЯ_СЕРВЕРА;
    return 301 https://$server_name$request_uri;
    
    }


    server {
    listen 443 ssl;
    server_name ИМЯ_СЕРВЕРА;
    ssl_certificate /etc/letsencrypt/live/ИМЯ_СЕРВЕРА/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/keys/0008_key-certbot.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSV1.2;
    access_log /var/log/nginx/ИМЯ_СЕРВЕРА_proxy.log;
    location / {
    proxy_pass http://192.168.169.4;
    }
    }
    Ответ написан
    1 комментарий
  • Ошибка в обращении к .env?

    @DeFaNJI
    Попробуйте прописать путь к файлу .env в вызове функции config

    require('dotenv').config({ path: './.env'})
    Ответ написан
    5 комментариев
  • Насколько правильно и оптимально написан код?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Сравнивайте, делайте выводы:

    document.querySelector('#check').addEventListener('change', e => {
      document.querySelector('#password-input').type = e.target.checked
        ? 'text'
        : 'password';
    });
    Ответ написан
    Комментировать
  • Почему Node.js не загружает фавиконку?

    lepard
    @lepard
    function selfDevelopment() { selfDevelopment() }
    Возможно неправильно указали путь в самом html

    И я бы вообще на вашем месте удалил строку
    //favicon
        app.use(favicon(path.join(__dirname, 'public/img/assets', 'favicon.ico')));


    Так как с помощью этих строк вы уже можете обратиться к favicon
    // static foulder
        app.use(statics(path.join(__dirname, 'public')));
    Ответ написан
    3 комментария
  • Пул подключений и алгоритм его работы?

    @qwazimord
    Интроверт
    .then(result =>{
        let res = result[0]
        console.log('result = ',res[0]);
        pool.end();
    if( result === undefined ) throw new Error();
    })
    .then(() =>{
      console.log("end"); 
    })
    .catch(function(err) {
      console.log(err.message);
    })

    если выбросить свою ошибку, то следующий then будет пропущен, а ошибка будет перехвачена в catch
    Ответ написан
    Комментировать
  • Насколько правильно и оптимально написан код?

    Если вам не нужна обязательно глобальная константа, оберните свой код в анонимную функцию.
    Ответ написан
    Комментировать
  • Как прервать выполнение цепочки промисов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    .then(onFulfilled, onRejected)вторая функция «ловит» ошибку и обрабатывает её, поэтому выполнение не прерывается.

    Вариант А. просто уберите её. И ловите ошибки в .catch() в конце цепочки.

    Вариант Б. возвращайте отвергнутый промис:
    // ...
    , function(reason) {
        console.log(reason); // Ошибка! (Тут Скрипт должен прервать дальнейшее выполнение!)
        return Promise.reject(reason); // передаём пас с ошибкой дальше по цепочке
      })
    и всё равно добавьте в конце блок .catch()
    Ответ написан
    Комментировать