• Как отправить и принять PUT?

    @whireless Автор вопроса
    Это помогло, спасибо)
  • Как обработать уведомление ЮKassa?

    @whireless Автор вопроса
    Добрый день, я спрашивал, они мне ответили что - не являются профильными специалистами, вот скрин. Тогда я и пошел сюда
    64108adaad1fc785966429.png
  • Как обработать уведомление ЮKassa?

    @whireless Автор вопроса
    Дмитрий Беляев, или если распарсить строку то выйдет обьект в итоге?
  • Как обработать уведомление ЮKassa?

    @whireless Автор вопроса
    Дмитрий Беляев, это ведь строка получится, верно? Мне просто обьект нужен, чтобы из него уже достать данные
  • Как обработать уведомление ЮKassa?

    @whireless Автор вопроса
    Ну да, вот только мне нужна не строка, а обьект. Из которого мне нужно будет достать значение одного из ключей
  • Как обработать уведомление ЮKassa?

    @whireless Автор вопроса
    Дмитрий Беляев, а как сделать так, чтобы весь JSON он обработал а не кусок? (С серверами толлько вот учусь работать, и не знаком возможно с какими-то способами)
  • Верно ли уходят данные на сервер и получает ли он их?

    @whireless Автор вопроса
    szQocks, в том то и дело, что ошибки в консоле нету, она просто ничего не выводит )), а если точнее, то пустую строку
  • Верно ли уходят данные на сервер и получает ли он их?

    @whireless Автор вопроса
    szQocks, а так в целом есть ещё какие-то ошибки в коде? (И как верно будет отсылать, в formData?)
  • Ошибка ERR_CONNECTION_REFUSED, что не так?

    @whireless Автор вопроса
    Tema Smirnov, возможно, кстати, подскажешь, я ведь правильно понимаю, что консоль которую я указал в -

    req.on("end" ...

    Должна выводится на сервере? Просто я вывожу в консоль переменную "mail", в которую записываю данные от клиента, но не выводится ничего, даже пустая строка.

    И код из .listen() тоже никуда не выводится, хотя по идее должен тоже в консоль сервера.
  • Ошибка ERR_CONNECTION_REFUSED, что не так?

    @whireless Автор вопроса
    Спасибо большое, отчасти помогло ваша подсказка, надо было еще в сервере добавить мне -
    app.post('/server', (req, res) => {
      let mail = '';
      req.on('data', chunk => {
        mail += chunk
      });
      req.on('end', () => {
        console.log(mail);
        sendRuProgram(mail);
      });
      res.setHeader("Access-Control-Allow-Origin", "*");  /// Вот это
      res.send('Отправили программу!');
    });


    В консоли Chrome теперь выводится - 'Отправили программу!'
    А вот в Firefox всё таже ошибка и осталась
  • Сервер отдаёт ошибку 500, в чём дело?

    @whireless Автор вопроса
    WapSter, c http не вариант как я сейчас понял, выдаёт ошибку типо - сайт был загружен по безопасному протоколу, но пытается сделать не безопасный запрос. Сейчас переделал (оказывается порты надо было разные ставить, на сам сайт - 443 и для обращения от сайта к серверу - 3000) и теперь выдаёт ошибку 404 (страница не найдена).
    Я видимо что-то не улавливаю, но думал что он сам догадается, что надо скрипт в папке той читать, а не страницу искать.

    nginx.conf:
    location /server/ {
          proxy_pass https://00.000.000.00:3000/server/;
        }


    запрос:
    return fetch(
        'https://example.com:3000/server/',
        {
          method: 'POST',
          mode: 'no-cors',
          headers: {
            'Content-Type': 'text/plain',
          },
          body: mail,
        }
      )
      .then((response) => response.text());


    server.js:
    const https = require('node:https');
    const app = require('express')();
    const fs = require('node:fs');
    
    const host = '00.000.000.00';
    const port = 3000;
    
    const options = {
      key: fs.readFileSync('/etc/letsencrypt/live/example.com/privkey.pem'),
      cert: fs.readFileSync('/etc/letsencrypt/live/example.com/cert.pem'),
    };
    
    app.post('/', (req, res) => {
      let mail = '';
      req.on('data', chunk => {
        mail += chunk
        console.log(mail);
      });
      req.on('end', () => {
        sendRuProgram(mail);
      });
      res.status(200).type('text/plain')
      res.send('Отправили программу!');
    })
    
    https.createServer(
      options,
      app,
    ).listen(port, host, () => {
      console.log(`Привет от сервера! https://${host}:${port}`);
    });
  • Сервер отдаёт ошибку 500, в чём дело?

    @whireless Автор вопроса
    WapSter, на самом деле очень благодарю за разжовывание). Видимо не достаточно изучил документацию. Но сейчас всё ещё при обращении на сервер падает ошибка 400 (Bad Request).

    Оставлял и https (как у вас в примере выше), и пробовал убрать всё что связано с ним, пробывал так:
    const http = require('node:http');
    const app = require('express')();
    const fs = require('node:fs');
    
    app.post('/', (req, res) => {
      let mail = '';
      req.on('data', chunk => {
        mail += chunk
        console.log(mail);
      });
      req.on('end', () => {
        sendRuProgram(mail);
      });
      res.status(200).type('text/plain')
      res.send('Отправили программу!');
    })
    
    http.createServer(
    app
    )
    .listen(port, host, () => {
      console.log(`Привет от сервера! https://${host}:${port}`);
    });;


    Возможно я всё-таки не верный путь прописываю сюда -
    app.post('/', (req, res) => {});

    // Да, тут реально вместо пути к серверу оставил слэш, тут не описывается, что именно должно быть в кавычках, и как я думал - путь до файла с сервером
  • Сервер отдаёт ошибку 500, в чём дело?

    @whireless Автор вопроса
    Ну у меня не локальный сервер а удалённый VPS, думаю в таком случае прописывать не нужно? за подсказку спасибо, по сути я удалил только строку resolver 45.146.164.83; и добавил порт после ip в proxy_pass.

    Касаемо создания https (в создании серверов я дилетант, до этого только фронтом занимался), т.е с моей конфигурацией nginx в server.js можно создать обычное http соединение? Если это так, то расскажите в чём разница, если не сложно))

    Сейчас кстати после частичной правки выкидывает ошибку 400 Bad Request, но это я не правил app.post() ещё, думаю дело в этом.
  • Проблема с проксированием сервера на Node.js, как исправить?

    @whireless Автор вопроса
    AUser0, сейчас попробовал по одному совету, поменять порты 8080 и 3000 на 80 и 443 соответственно в nginx, в связи с чем, сайт заработал, однако nginx -t выдаёт такое -
    nginx: [warn] conflicting server name "example.com" on 0.0.0.0:80, ignored
    nginx: [warn] conflicting server name "example.com" on 0.0.0.0:443, ignored
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful


    и тогда при обращении на сервер (заменив конечно-же порт 3000 на 443 теперь) в консоль падает ошибка 500, думаю это связано с тем, что nginx ругается на порты 80 и 443
  • При подключении к сайту выдаёт ошибку 400, как исправить?

    @whireless Автор вопроса
    Частично помогло ваше решение, но не целиком, сайт теперь открывается, однако nginx -t выдаёт такое -

    nginx: [warn] conflicting server name "example.com" on 0.0.0.0:80, ignored
    nginx: [warn] conflicting server name "example.com" on 0.0.0.0:443, ignored
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful


    и помимо этого, запрос на сервер с сайта (на одной из страниц кнопка кидает данные на сайт) в консоль выводит теперь ошибку 500 от сервера. Я думаю это связано с тем, что выдаёт тест nginx, дело в том, что если я заменю порты 80 на 8080 и 443 на 3000 соответственно, то он перестаёт ругаться, но тогда уже и сайт не открывается, и выдаёт ошибку 400
  • При подключении к сайту выдаёт ошибку 400, как исправить?

    @whireless Автор вопроса
    Lynn «Кофеман», где именно, в браузере? в браузере и http и https выдаёт ошибку 400 при заходе на сайт с указанным выше кодом в nginx
  • Проблема с проксированием сервера на Node.js, как исправить?

    @whireless Автор вопроса
    AUser0, На хостинге где лежит сайт, базовые 443 и 80 заменены на 3000 и 8080 соответственно как я понял (если в блоках server указывать 80 и 443 соответственно, nginx начинает ругатся).

    Вот в коде я же и написал что listen 3000 ssl; Вообще, если удалить как я выше указал слово ssl и пути до ключа и сертификата, то сайт сразу на https уже открывается, просто при запросе на сервер по кнопке на сайте вылезает в консоли - ERR_SSL_PROTOCOL_ERROR; А с текущей конструкцией server сайт кидает ошибку 400.

    Касаемо error.log - нашел там что-то подозрительное, может в этом проблема -
    *211 SSL_do_handshake() failed
  • Проблема с проксированием сервера на Node.js, как исправить?

    @whireless Автор вопроса
    AUser0, да, захожу через https. На 80 вряд-ли, я даже попробовал вынести их в отдельные секции, и сделать перенапрааление, но так же не работает.
    server {
        listen 8080;
        server_name example.com;
    
        location / {
        	rewrite ^(.*)$ https://example.com$1 permanent;
      	}
      }
    
      server {
        listen 3000 ssl;
        server_name example.com;
        root /var/www/example.com/;
        index index.html;
        ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
        location / {
        	proxy_pass http://00.000.000.00:8080;
      	}
    
        location /server/ {
        resolver 00.000.000.00;
        proxy_pass https://00.000.000.00;
      	}
      }
  • Проблема с проксированием сервера на Node.js, как исправить?

    @whireless Автор вопроса
    AUser0, подскажешь ещё кое-что? С сертификатом я разобрался, поставил certbot, в конфиге ошибок нету. Однако есть теперь проблема при заходе на сайт, кидает ошибку - 400 Bad Request с надписью - Обычный 'HTTP-запрос был отправлен на HTTPS-порт'. Пробовал увеличивать буфер заголовков по советам из интернета, не помогает, только отключение в listen 3000 ssl; этого самого слова ssl и комментирование путей до ключа и сертификата. Я понимаю что надо что-то с rewrite в server прописать походу, но не знаю что, вот код

    server {
    		listen 3000 ssl;
    		server_name exaple.com;
    		root /var/www/exaple.com/;
    		index index.html;
    		ssl_certificate /etc/letsencrypt/live/exaple.com/cert.pem;
    		ssl_certificate_key /etc/letsencrypt/live/exaple.com/privkey.pem;
    	
    
    		location /server/ {
        resolver 00.000.000.00;
    		limit_except POST {
          deny all;
        }
        proxy_pass http://00.000.000.00;
      	}
    	}