Как передавать данные из node.js в php?

Пользователь

от jett , в категории: PHP , 2 года назад

Как передавать данные из node.js в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от eudora , 2 года назад

@jett 

Пользователь

от marc_zboncak , год назад

@jett 

Есть несколько способов передачи данных из Node.js в PHP:

  1. Использование HTTP запросов: Node.js может отправлять HTTP запросы на сервер PHP, передавая данные через параметры запроса или тело запроса. В PHP можно затем получить эти данные и обработать их. Например, в Node.js можно использовать модуль request для отправки запросов на сервер PHP, а в PHP данные можно получить с помощью $_GET или $_POST массивов.


Пример отправки HTTP запроса из Node.js:

1
2
3
4
5
6
7
8
9
const request = require('request');

const data = { foo: 'bar' };

request.post('http://example.com/php_script.php', { form: data }, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});


Пример получения данных в PHP:

1
2
$data = $_POST['foo'];
echo $data; // выводит 'bar'


  1. Использование сокетов: Node.js может установить TCP соединение с сервером PHP и передавать данные по этому соединению. В PHP можно затем читать данные из сокета и обработать их. Например, в Node.js можно использовать модуль net для работы с сокетами, а в PHP можно использовать функции socket_create(), socket_bind(), socket_listen(), socket_accept(), socket_recv() и т.д. для установки соединения и чтения данных.


Пример отправки данных из Node.js по сокету:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const net = require('net');

const data = { foo: 'bar' };

const client = net.createConnection({ host: 'localhost', port: 1234 }, () => {
  client.write(JSON.stringify(data));
});

client.on('data', (data) => {
  console.log(data.toString());
  client.end();
});


Пример получения данных в PHP:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, 'localhost', 1234);
socket_listen($socket);

$client = socket_accept($socket);
$data = socket_read($client, 1024);

$data = json_decode($data, true);

echo $data['foo']; // выводит 'bar'


  1. Хранение данных в общем хранилище: Node.js и PHP могут оба использовать общее хранилище, такое как база данных или кэш, для передачи данных друг другу. Например, Node.js может сохранить данные в базе данных, а PHP может прочитать их из этой базы данных и обработать.


Добавление данных в базу данных в Node.js:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'user',
  password: 'password',
  database: 'database'
});

connection.connect();

const data = { foo: 'bar' };

connection.query('INSERT INTO table SET ?', data, function (error, results, fields) {
  if (error) throw error;
  console.log('Inserted ' + results.affectedRows + ' row(s)');
});

connection.end();


Чтение данных из базы данных в PHP:

1
2
3
4
5
6
$connection = mysqli_connect('localhost', 'user', 'password', 'database');

$query = mysqli_query($connection, 'SELECT * FROM table');
$data = mysqli_fetch_array($query);

echo $data['foo']; // выводит 'bar'


  1. Использование файловой системы: Node.js может записать данные в файл, а PHP может прочитать эти данные из файла и обработать их. Например, в Node.js можно использовать модуль fs для записи в файл, а в PHP можно использовать функции file_get_contents() или fread() для чтения из файла.


Запись данных в файл в Node.js:

1
2
3
4
5
6
const fs = require('fs');

const data = { foo: 'bar' };

fs.writeFileSync('data.json', JSON.stringify(data));
console.log('Data written to file');


Чтение данных из файла в PHP:

1
2
3
4
$data = file_get_contents('data.json');
$data = json_decode($data, true);

echo $data['foo']; // выводит 'bar'