Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Node with PHP?
ZiaRek
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 25.09.2013

Ostrzeżenie: (0%)
-----


Czy istnieje jakiś sposób na swobodną wymianę danych pomiędzy Node.JS a PHP. Mam tu na myśli np. taką sytuację :

Piszę w Node a chce skorzystać z Doctrine2 która jest biblioteką PHP. Po stronie klienta wysyłam żądanie AJAX do skryptu PHP który zawiera potrzebne mi funkcje Doctrine2 które przygotowują mi dane. Dostaje odpowiedź po stronie klienta i za pomocą Socket.io przesyłam to do serwera Node. To tak w teorii. Tylko problem który napotkałem to jak uruchomić skrypt PHP na serwerze Node. Obecnie korzystam z tego :

http://www.scriptol.com/javascript/nodejs-php.php

Ale dostaje błąd metody GET gdy próbuje obejrzeć wynik na moim porcie.

Ten post edytował ZiaRek 22.03.2014, 11:07:25
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Temat: Jak poprawnie zatytulowac watek
Tytulem Twojego wątku nie ma byc Twoj nick :/ Popraw proszę tytuł na właściwy
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Może to:
http://www.scriptol.com/javascript/nodejs-php.php
Go to the top of the page
+Quote Post
ZiaRek
post
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 25.09.2013

Ostrzeżenie: (0%)
-----


Może trochę kodu

INDEX.HTML

  1. <!doctype html>
  2. <head>
  3. <title>ZiaRek</title>
  4. <meta charset="utf-8">
  5. <script type="text/javascript" src="./jquery-2.1.0.min.js"></script>
  6. <script type="text/javascript" src="./client.js"></script>
  7. <body>
  8. <div id="content"> </div>
  9. </body>
  10. </html>


SCRIPT.PHP

  1. <?php
  2.  
  3. $idOp = filter_input(INPUT_POST, 'ID');
  4.  
  5. if ($idOp == 1) {
  6.  
  7. $output = 'Czy działa PHP';
  8.  
  9. echo $output;
  10.  
  11. }


SERVER.JS

  1. var express = require('express'), app = express()
  2. ,path = require("path")
  3. ,url = require("url")
  4. ,runner = require("child_process");
  5.  
  6.  
  7. app.use(express.static(__dirname + '/'));
  8.  
  9.  
  10. function sendError(errCode, errString, response)
  11. {
  12. response.writeHead(errCode, {"Content-Type": "text/plain;charset=utf-8"});
  13. response.write(errString + "\n");
  14. response.end();
  15. return false;
  16. }
  17.  
  18. function sendData(err, stdout, stderr, response)
  19. {
  20. if (err) return sendError(500, stderr, response);
  21. response.writeHead(200,{"Content-Type": "text/plain;charset=utf-8"});
  22. response.write(stdout);
  23. response.end();
  24. }
  25.  
  26. function runScript(exists, file, param, response)
  27. {
  28. if(!exists) return sendError(404, 'File not found', response);
  29. runner.exec("php " + file + " " + param,
  30. function(err, stdout, stderr) { sendData(err, stdout, stderr, response); });
  31. }
  32.  
  33. function php(request, response)
  34. {
  35. var urlpath = url.parse(request.url).pathname
  36. ,param = url.parse(request.url).query
  37. ,localpath = path.join(process.cwd(), urlpath);
  38. path.exists(localpath, function(result) { runScript(result, localpath, param, response)});
  39. }
  40.  
  41. require("http").createServer(php).listen(8080);
  42.  


CLIENT.JS

  1. function laduj(paramID){
  2.  
  3. $.ajax({
  4.  
  5. 'url': 'script.php',
  6. success:function(odp){
  7. $("#content").text(odp);
  8. },
  9. 'data': {
  10. 'ID' : paramID,
  11. },
  12. 'type' : 'POST'
  13. });
  14.  
  15. }
  16.  
  17. $(function() {
  18.  
  19. laduj(1);
  20.  
  21. });
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Um nie prościej pobrać te dane bezpośrednio w node korzystając z jakiejś biblioteki do łączenia się z mysql'em?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 02:12