utilizzando il server node.js con mysql-module e PHP per un sito web d'asta penny? [chiuso]

-4

Sto costruendo una piattaforma di vendita all'asta come DealDash e leggo solo nell'argomento WebSocket e node.js. Ho usato PHP, MySQL e Ajax per costruire il sito web. Ho quasi finito e devo solo implementare la funzione WebSocket affinché le aste vengano visualizzate correttamente per tutti gli utenti.

Ho trovato uno script che mi aiuta a iniziare con node.js e mysql, quindi riesco ancora a recuperare i dati dal mio database ogni secondo. Perché ho bisogno che il timer dell'asta e il prezzo siano visualizzati in modo asincrono per tutti gli utenti. Perché devo anche completare questo progetto tra qualche giorno. Ma sto considerando di imparare di più su NoSQL-db's e node.js, ecc. Ovviamente dopo.

Tuttavia, sono riuscito ad aggiornare tutti gli elementi dell'asta sulla pagina iniziale asincrona. con più browser. Quindi le modifiche vengono aggiornate per ogni utente come volevo che fosse.

Ora ogni asta ha una singola pagina per ottenere ulteriori dettagli su un'asta e sul prodotto. E di solito ho usato $_GET['id'] in PHP / MySQL per ricevere i dati necessari su questa asta specifica. Ma il file-server node.js server.js è il file in SELECT * FROM db .

Quindi ecco il mio problema. Devo dire al file server, se l'utente si trova su una specifica pagina di identificazione dell'asta, deve fare un'altra richiesta specifica? Non riesco a immaginarlo, perché altri progetti come un social network avrebbero dozzine di query specifiche, tutte scritte nel file server node.js? Anche l'uso di un'istruzione if-else nel file server non sembra corretta? Inoltre, non so come ottenere questo specifico ID di un'asta.

Sono solo confuso sul modo giusto di realizzare qualcosa del genere, perché sono così abituato a PHP / MySQL / Ajax e spero che tu possa aiutarmi in questo.

    
posta AlexioVay 15.04.2015 - 10:02
fonte

1 risposta

-1

Bene, per un progetto così "complesso", ti suggerisco di dividere i tuoi domini in pezzi più piccoli, chiamarli moduli. Forse è più semplice lavorare con apis / risorse anziché con query dirette al database.

Lascia che ti spieghi un po '. Supponiamo che tu voglia una parte front-end e una parte back-end. Il front-end e il backend parlano di un'API, nel mio caso un'API REST. Diciamo che vuoi visualizzare le informazioni per il numero d'asta # 2522. La tua logica front-end effettua una richiesta di ottenere il tuo back-end come:

GET api.myauctionpage.com/auction/2522 .

Il back-end ora ha la responsabilità di tradurre la tua richiesta di ottenere nelle query del database e nella raccolta di informazioni. Se è fatto, invia le informazioni al client in modo leggibile dalla macchina (ad es. JSON, XML ...).

Ad esempio il ritorno per la richiesta get sopra sarebbe qualcosa di simile a:

{id: 2522, current_price: 25.00, betters: [{better_id: 123, better_name: 'charly'}, {better_id: 963, better_name: 'christine101'}]}

La logica della pagina iniziale ora ha i dati e può iniziare a inserirla nella pagina e visualizzarla al cliente. Nel nostro caso il prezzo attuale è 25,00 e ci sono due migliori, charly e christine101.

Vedete, ho disaccoppiato le logiche e il backend non si cura di chi le informazioni vogliono e al frontend non interessa come ottiene le informazioni.

Ora sta a te decidere come utilizzare o combinare l'api con il frontend, se richiedi ogni informazione ogni secondo o se desideri aggiornarlo con "eventi" websocket.

Il back-end può essere scritto in PHP o anche in JavaScript (+ node.js) o entrambi, a patto che il front-end abbia un modo unico e corretto per richiedere l'informazione.

    
risposta data 15.04.2015 - 14:21
fonte

Leggi altre domande sui tag