Как связать node js и python
Перейти к содержимому

Как связать node js и python

  • автор:

как связать 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 комментария

что вы понимаете под словом «совместить»?

lazalu68

Ну раз приложение уже существует, то нода вполне может обращаться к нему за нужной инфой. И всё, на этом интеграция завершена)

Решения вопроса 0
Ответы на вопрос 1
Кирилл Горелов @Kirill-Gorelov
С ума с IT

Я думаю в производительности ты не потеряешь, но и смысла в этом большого я не вижу.
Я бы выбрал что-то одно, либо python, либо node, что более удобнее конкретно для тебя.
Я думаю и то и это, легко справятся с твоей задачей.
Я думаю не стоит пытаться что-то оптимизировать еще до того как у тебя что-то начинает ломаться)

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

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

python

  • Python
  • +1 ещё

Error Connecting: HTTPSConnectionPool(host=’url’, port=443) как решить?

  • 1 подписчик
  • 4 часа назад
  • 11 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *