Получить данные клиента, обработать логикой на сервере, передать результат клиенту
Доброго времени суток, уважаемые разработчики.
Прошу вашей помощи. Начал изучать Node js на практике и застрял. Задача вот в чём: есть десктопное приложение - шифровальщик на electron (html, css, js), которое нужно перереботать в веб. Логика на app.js включая ключ шифрования. Соответственно логика (шифрование) должно происходить на сервере. Алгоритм: 1. Клиент вводит текст в input (textarea) id="X", нажимает button; 2. Браузер отправляет value из id="X" на сервер; 3. Сервер принимает value из id="X" в переменную и передаёт аргументом в функцию шифрования; 4. Зашифрованный текст передаётся на фронтэнд в textarea Id="y" ; Это как если бы был калькулятор на сервере, а цифры и кнопки операций на клиенте. Ребят, прошу меня извинить, если спросил элементарщину, но, правда, перегуглил и переютубил уже везде, но ответа не нашёл. Везде какой то мрак и всё не то. Заранее благодарю. |
Цитата:
Но может прислать зашифрованное ответом на Цитата:
Т.е. техника тут такая "запрос на сервер -> ответ сервера -> какие-то действия с полученными данными" |
Цитата:
Я сам уже несколько месяцев читаю книги по Node.JS и мрака там не замечал. Основная проблема в том, что книги те не моложе 2017-го года. :( И не все примеры уже рабочие. |
Добрый день. Спасибо, что откликнулся на зов.
Ну да, пусть оно на фронтэнд придёт в переменную допустим cryptedData от сервера, а дальше клиентская логика его закинет в textarea с id="y". Главное, чтобы основные функции шифрования и дешифрования выполнялись на сервере. Чтоб юзер не видел ключа. Вот допустим есть index.html, который app.get('/', fuction(req, res) { res.sendFile(__dirname + '/index.html'); }); Например такой: <p style="text">Введите первое число</p> <textarea> id="X" </textarea> <p style="text">Введите второе число</p> <textarea> id="y" </textarea> <button id="summ" onclick="?????" > Сложить</button> И функция на сервере: function summData(x, y) { x+y; } Вот и как заставить их взаимодействовать? |
Начал читать Пауэрса Изучаем Node переходим на сторону сервера. Вроде пока хорошо заходит. Надеюсь дойду до своего решения.
А до этого смотрел ютуб, stackoverflow, habr и прочий интернет. Не нашёл ответа. Может просто просмотрел по тупости))) |
Цитата:
У тебя будет get запрос, который вернет закодированную строку. |
Цитата:
var http = require('http'); var querystring = require('querystring'); var server = http.createServer().listen(3000); server.on('request', function(request,response) { if (request.method == 'POST') { var body = ''; // Фрагмент данных присоединяется к body request.on('data', function (data) { body += data; }); // Переданные данные request.on('end', function () { var post = querystring.parse(body); // В post будет твоя строка, которую ты передал серверу console.log(post); response.writeHead(200, {'Content-Type': 'text/plain'}); // Вот тут тебе нужно вернуть закодированную строку response.end('Hello World\n'); }); } }); console.log('Сервер прослушивает порт 3000'); |
Спасибо, Бро!
Попробую так. |
Вот вариант для ГЕТ и ПОСТ...
var http = require('http'); var querystring = require('querystring'); var server = http.createServer().listen(3000); server.on('request', function(request,response) { console.log(request.url) //console.log(Object.keys(request)) if (request.method == 'POST') { var body = ''; // Фрагмент данных присоединяется к body request.on('data', function (data) { body += data; }); // Переданные данные request.on('end', function () { var post = querystring.parse(body); // В post будет твоя строка, которую ты передал серверу console.log(post); response.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'}); // Вот тут тебе нужно вернуть закодированную строку response.end('POST запрос'); }); } if (request.method == 'GET') { response.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'}); response.end('GET запрос'); } }); console.log('Сервер прослушивает порт 3000'); |
не очень хорошая идея в теперешнем часе писать ручками сервера
понимать как работает надо но лучше взять хорошее готовое к примеру https://www.fastify.io/ один из лучших быстрых серверов js на текущий момент с большим количеством расширением |
Цитата:
|
Благодарствую????????
|
John_Medved, если нужно заиметь простенький сервер на "базе" Electron (а его ранее хорошо пиарили).
https://www.npmjs.com/package/electron Достаточно его установить глобально npm i electron -g Тогда можно сразу скомпилировать простой сервер electron <имя_папки> В текущем каталоге будет создано приложение Node.js с двумя страницами, шаблонизатором и отработкой ошибок 404 и 500. |
ksa,
Electron это немного другое Это фреймворк для написания кросплатформенных десктопных приложений На базе браузерного движка Chromium в двух словах это фронт и сервер между которыми может обмен данными с помощью обычных запросов http так и с помощью EventEmitter (ipcRenderer) Здесь (вместе с Electron, Vue) мне нравится Quasar со своими плюшками |
Vlasenko Fedor, я все к тому, что на свете валом всего и для всего.
За всем не угонишься. Если сам можешь многое написать руками - это всегда пригодится в жизни. А научиться пользоваться чем-то чужим и более "навороченным", потом всегда можно. Тем паче все это ПО разрабатывают в избытке. |
Да пригодиться. Личный опыт и собственные шишки, алгоритмы и паттерны, умение создать архитектуру и выбрать решение это есть цена разработчика.
Сейчас приходят многие и даже не заглядывают в исходный код того, что используют. Считают себя программистами с знанием 1-2 фреймворка. Так как потребность на рынке большая и им удается пристроится. Приходят люди разных специальностей, когда задаешь вопрос почему в программисты часто ответ платят хорошо. И очень мало тех кому это действительно нравится и у кого это было хобби. |
Часовой пояс GMT +3, время: 05:01. |