как связать Python и Node JS через Socket и Socket.io-client
проблема в том что клиент JS не может подключиться к серверу на Python вот код сервера:
import socket sock = socket.socket() sock.bind(('', 9090)) sock.listen(1) conn, addr = sock.accept() while True: data = conn.recv(1024) print(data.decode())
а вот код клиента:
const io = require('socket.io-client'); var socket = io.connect("http://localhost:9090", ); socket.emit("hello");
и при подключении вместо сообщения hello сервер выдает
GET /socket.io/?EIO=4&transport=polling&t=OCMnyU-&b64=1 HTTP/1.1 User-Agent: node-XMLHttpRequest Accept: */* Host: localhost:9090 Connection: close
как можно пофиксить данную проблему? вариант переписать все на WebSocket не предлагать
Как из Node.js передать в скрипт Python?
Приветствую, у меня есть задача:
Передать объект нового пользователя в python script, если все ключи в объекте будут соответствовать требованиям, то скрипт вернет «OK», если же нет, то вернет определенную ошибку.
не знаю зачем, но вот мой web server на всякий случай:
const cors = require('cors'); const express = require('express'); const path = require('path'); const app = express(); const bodyParser = require('body-parser'); const sequelize = require('./database/database') const getUsersFromAccounts = require('./routes/getUsersFromAccounts') app.use(cors()); app.use(express.static(path.join(__dirname, 'dist'))); app.use(express.json()); app.use('/getUsersFromAccounts', getUsersFromAccounts); app.get('*', (req, res) => < res.sendFile(path.join(__dirname, 'dist/aat/index.html')) >); const port = process.env.PORT || 4000; async function start() < try < await sequelize.sync() app.listen(port, (req, res) =>< console.log(`Server running in port $`); >) > catch (e) < console.log(e); >> start();
Я понимаю, что мне нужно сделать post запрос и передать в контроллере данные в скрипт, но как это правильно пишется не понимаю. Может кто-то поделиться полезной инфой? Использую sequelize.
- Вопрос задан более двух лет назад
- 108 просмотров
1 комментарий
Простой 1 комментарий
Node.js
«Нода» — младшая сестра JavaScript, которая берет на себя большую часть бэкенд разработки. В этой статье мы расскажем откуда она появилась, зачем она нужна и какие у нее перспективы, а также заценим ее «лук» и узнаем, где с ней знакомиться.
Старший брат
JavaScript — это язык программирования, который изначально был создан для работы в браузере. Он позволяет добавлять интерактивность и динамику на веб-страницы, обрабатывать события, взаимодействовать с DOM и отправлять асинхронные запросы на сервер. Но что, если мы хотим использовать JavaScript не только на клиенте, но и на сервере? Для этого существует платформа Node.js, которая позволяет запускать JavaScript-код вне браузера.
Что такое Node.js и как она устроена
Node.js — это среда выполнения JavaScript, построенная на движке V8 от Google, которая:
- Компилирует и исполняет JavaScript-код, преобразуя его в машинный код, понятный для процессора. Благодаря этому JavaScript работает очень быстро и эффективно.
- Не только использует движок V8, но и расширяет его функциональность, добавляя различные модули и API для работы с файлами, сетью, базами данных и другими ресурсами.
- Предоставляет событийный цикл (event loop) — механизм, который позволяет обрабатывать асинхронные операции без блокировки основного потока исполнения. Событийный цикл регистрирует функции-обработчики (callback) для разных событий (например, завершение чтения файла или получение ответа от сервера) и вызывает их по очереди, когда события происходят.
Краткая история
Node.js была создана в 2009 году Райаном Далем (Ryan Dahl), который хотел улучшить возможности серверных приложений того времени. Он заметил, что большинство серверов работали по принципу одновременного обслуживания ограниченного количества соединений, что приводило к низкой производительности и высокому потреблению ресурсов. Райану пришла в голову идея использовать JavaScript на сервере и сделать его асинхронным и неблокирующим, то есть способным обрабатывать множество соединений параллельно без задержек.
Далем представил свой проект на конференции JSConf в 2009 году и получил положительный отклик от сообщества. С тех пор Node.js развивается и улучшается благодаря вкладу многих разработчиков и компаний.
Node js — для чего нужен?
Подходит для разработки:
- Приложений: тех, которые работают в режиме реального времени и поддерживают постоянное взаимодействие между клиентом и сервером. Примеры таких приложений – чаты, игры, видео-стриминг, инструменты для коллаборации.
- Микросервисов: то есть для построения микросервисной архитектуры, которая состоит из множества небольших и независимых сервисов, взаимодействующих между собой. Это обеспечивает высокую масштабируемость, отказоустойчивость и гибкость приложений.
- API: Node.js позволяет создавать RESTful API — интерфейсы для обмена данными между приложениями в формате JSON. Платформа также поддерживает GraphQL — язык запросов и схемы для API, который дает больше контроля над получаемыми данными.
Для чего еще используется Node.js?
- Высоконагруженные и высокопроизводительные веб-сервисы: поисковые системы, социальные сети, облачные платформы.
- Приложения для интернета вещей: сети из устройств, которые собирают и передают данные через интернет. Node.js позволяет обрабатывать большие объемы данных в реальном времени и взаимодействовать с разными протоколами и API.
- Образовательные платформы и инструменты: для помощи студентам и преподавателям в изучении и преподавании программирования.
Как установить Node.js на macOS

Фреймворки и вспомогательные инструменты
Хотя платформа предоставляет много полезных модулей и API для работы с сервером, иногда этого недостаточно для создания сложных и качественных приложений. В таких случаях на помощь приходят фреймворки и вспомогательные инструменты, которые расширяют возможности Node.js и упрощают разработку. Давайте рассмотрим несколько популярных:
- Express — это фреймворк, который поддерживает маршрутизацию, обработку ошибок, шаблонизацию, работу с cookies и сессиями, интеграцию с базами данных и другими сервисами. А также он может похвастаться большим сообществом разработчиков и множеством дополнительных модулей и плагинов.
- Socket.io — это библиотека для работы с веб-сокетами.
Веб-сокеты — это технология, которая позволяет устанавливать двустороннее и постоянное соединение между клиентом и сервером. Это позволяет обмениваться данными в реальном времени без необходимости постоянно отправлять запросы на сервер.
Библиотека поддерживает бинарные данные, мультиплексирование, автоматическое переподключение, обнаружение и исправление ошибок.
- Koa — это фреймворк, созданный теми же разработчиками, что и Express. Он представляет собой более легковесную и современную альтернативу Express, которая использует новые возможности JavaScript, такие как async/await и генераторы. Koa позволяет создавать эффективные и элегантные веб-приложения и API с минимальным набором функций. Он поддерживает принцип «middleware», позволяющий добавлять различные функции и модули к приложению.
Популярность и перспективы
Сейчас Node.js — одна из самых популярных платформ для создания веб-приложений и имеет большое количество фреймворков, библиотек и инструментов:
- По данным исследования Stack Overflow 2021 — занимает первое место среди фреймворков, библиотек и инструментов, которые используют профессиональные разработчики.
- По данным сайта NPM Trends — опережает другие серверные платформы, такие как PHP, Python, Ruby и Java, по количеству загрузок за последний год.
А что насчет перспектив?
- Развитие и улучшение. Этим занимается независимая организация, Node.js Foundation, которая регулярно проводит конференции, вебинары, хакатоны, чтобы обменяться опытом и знаниями о Node.js.
- Используется компаниями с мировым именем. Google, Microsoft, Netflix, PayPal, Uber, NASA — доверяют «ноде» свои критически важные приложения и сервисы.
- Востребованность Node.js разработчиков.Отличный выбор для карьерного роста и профессионального развития. Node.js-разработчики востребованы на рынке труда и получают хорошую зарплату. По данным сайта Indeed, средняя зарплата Node.js-разработчика в США составляет $110 000 в год, а в России — 100-150 тыс. рублей в месяц.
4 места, где можно начать учить Node.js
Официальный сайт — там вы ознакомитесь с документацией, руководством, примерами кода и другой полезной информацией
W3Schools — ресурс, где вы найдете простые и понятные уроки по node js
Learn Node — сайт с мощным практическим курсом по созданию веб-приложений на Node.js и Express.
Эльбрус Буткемп — в рамках онлайн-программы FULLSTACK JAVASCRIPT мы подробно показываем как работать с Node.js и Express, а также для самых смелых у нас есть офлайн буткемпы в Санкт-Петербурге и Москве.
Подключение python к node js проекту?
Всем доброго времени! Есть достаточно большое приложение на python которая выполняет в основном аналитку, собирает данные, выстраивает рекомендательную систему. Есть бэк приложения написанного на node js (фронт реакт).
Будет ли хорошей практикой совместить node и python? от питона мне нужна только аналитика и вычисления — от ноды бэк для spa.
Потеряю ли я в производительности ?
- Вопрос задан более трёх лет назад
- 362 просмотра
2 комментария
Средний 2 комментария
что вы понимаете под словом «совместить»?

Ну раз приложение уже существует, то нода вполне может обращаться к нему за нужной инфой. И всё, на этом интеграция завершена)
Решения вопроса 0
Ответы на вопрос 1
Кирилл Горелов @Kirill-Gorelov
С ума с IT
Я думаю в производительности ты не потеряешь, но и смысла в этом большого я не вижу.
Я бы выбрал что-то одно, либо python, либо node, что более удобнее конкретно для тебя.
Я думаю и то и это, легко справятся с твоей задачей.
Я думаю не стоит пытаться что-то оптимизировать еще до того как у тебя что-то начинает ломаться)
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
- +1 ещё
Error Connecting: HTTPSConnectionPool(host=’url’, port=443) как решить?
- 1 подписчик
- 4 часа назад
- 11 просмотров