Sviluppo di un sito dinamico con Node.js [chiuso]

1

Sto cercando di ottenere alcuni suggerimenti su quale sarebbe la migliore metodologia da seguire per un'applicazione web.

In primo luogo, un po 'di background: ho costruito due API diverse usando Node.js dove Node serve i dati ai client usando un'interfaccia JSON. I client sono stati entrambi applicazioni iOS, facendo un uso pesante di Socket.io ed Express.

Ora sto cercando di entrare nel mondo dello sviluppo di siti web- Mi piacerebbe essere in grado di creare un'applicazione a pagina singola che viene eseguita nel browser, usando ancora Socket.io ed Express. Tuttavia, sono appeso un po 'su cosa dovrei fare esattamente.

  • Dovrei ospitare il mio sito da Nginx / Apache e utilizzare Node semplicemente come un server "dati", incanalando i dati tramite JavaScript sul client per aggiornare l'HTML del sito?
  • Dovrei ospitare tutto attraverso il nodo, aggiungendo percorsi per i file mentre procedo?
  • Dovrei provare a creare una qualche forma di "inviare un comando tramite Socket.io al client JS per creare dinamicamente la pagina" tipo di framework?
  • Dovrei fare qualcos'altro interamente? Fondamentalmente, sono uno sviluppatore iOS e API non utilizzato dalle tecnologie web in generale, cercando di capire come utilizzare al meglio la tecnologia di gestione dei dati di Node e applicarla a un'applicazione web lato client.

Ho letto tonnellate di informazioni online e, sebbene utile, sembra che tutto sembri presupporre che conosco già molto sullo sviluppo web e sto solo cercando di adattarlo a Node, mentre invece è vero il contrario: Conosco il nodo ma non lo sviluppo web. Ho esaminato lo stack MEAN, ad esempio, e mentre adoro il concetto non sembra (a prima vista) che Angular sia più adatto a Node di, per esempio, jQuery (sono sicuro di aver sbagliato qui- ci deve essere qualche ragione 'MEAN' è una cosa).

Qualsiasi input è molto apprezzato!

    
posta malexdev 05.04.2014 - 02:53
fonte

2 risposte

1

Should I host my site out of Nginx/Apache and use Node as simply a "data" server, funneling data through JavaScript on the client to update the site HTML?

Molte persone lo raccomandano esattamente. Questo articolo riguarda yesod, ma penso che si applichi:

  • As fast as Warp is, it is still optimized as an application server, not a static file server.
  • Using Nginx, you can set up virtual hosting to serve your static contents from a separate domain. (It’s possible to do this with Warp, but a bit more involved).
  • You can use Nginx as either a load balancer or a SSL proxy. (Though with warp-tls it’s entirely possible to run an https site on Warp alone.)

Poi

Should I attempt to create some form of "send a command via Socket.io to the client JS to build the page dynamically" type of framework?

Questo è quello che fanno molte persone, usando framework come angolare / brace / knockout / ... È un modo naturale di sviluppare una webapp per una singola pagina.

Lo svantaggio principale è la gestione dei browser js-less, utilizzati da persone cieche e amp; motori del motore di ricerca. Un'app nativa non sarebbe di alcun aiuto qui, quindi devi decidere se questi casi d'uso sono importanti, sapendo che alcune soluzioni potrebbero esistere (come la scansione della tua webapp con un browser headless per creare una versione limitata statica servita a js- lss browser).

Should I do something else entirely? Basically, I'm an iOS and API developer unused to web technologies overall, trying to figure out how best to use what I know about Node's data serving methodology and apply it to a client side web app.

Nessuno può rispondere a questo. Dipende se vuoi imparare qualcosa di nuovo o consegnare qualcosa velocemente. E anche il tuo pubblico di destinazione. Scoprire qualsiasi nuova tecnologia è spaventoso all'inizio. Il fatto che un back-end di app web possa essere tutto ciò che vuoi significa che ci sono costantemente nuove tecnologie di back-end che appaiono continuamente. Hai scelto node.js; Mi concentrerei su questa prima, forse ignorando nginx per il momento.

La conoscenza dello sviluppo del client Web è difficile da acquisire, ma è molto riutilizzabile. E una volta che conosci node.js, puoi leggere più facilmente altri tecnici di back-end.

    
risposta data 05.04.2014 - 08:58
fonte
1

Should I host my site out of Nginx/Apache and use Node as simply a "data" server, funneling data through JavaScript on the client to update the site HTML?

Qualcosa dovrebbe essere responsabile per la porta 80. Dovrebbe essere Nginx / Apache o Node. Se hai intenzione di utilizzare il nodo, puoi utilizzarlo come server web.

Should I host it all through Node, adding routes for files as I go?

Non posso assolutamente ottenerlo. Puoi implementare i tuoi percorsi dinamici usando Express per esempio ed è molto semplice. Inoltre, dovresti generalmente considerare richieste come URI non File .

Should I attempt to create some form of "send a command via Socket.io to the client JS to build the page dynamically" type of framework?

Puoi scegliere Socket.io se lo desideri, ma non sei limitato a farlo. AJAX è l'altra opzione, tuttavia non ne avrai bisogno se hai già installato Socket.io.

Should I do something else entirely? Basically, I'm an iOS and API developer unused to web technologies overall, trying to figure out how best to use what I know about Node's data serving methodology and apply it to a client side web app.

Se hai davvero bisogno di un'applicazione a pagina singola / in tempo reale, allora il Nodo è una buona scelta. Se hai bisogno di un semplice sito web, un linguaggio di scripting come Python o PHP potrebbe essere una scelta migliore.

Riguardo a Angular e jQuery , il primo è più della tua casa di lusso a Beverly Hills, ma il secondo è un pezzo di terra - beh, ovunque sulla terra !, su cui puoi costruire qualsiasi cosa: una casa di lusso, una fattoria o una fabbrica. Se leggi su di loro separatamente capirai semplicemente che Angolare è più disposto a fare cose per te - a suo modo, in contrasto con jQuery che è più disposto a aiutarti a fare le cose da solo e a modo tuo. Entrambi hanno i loro casi d'uso, quindi non licenziatene semplicemente, sono animali completamente diversi.

    
risposta data 05.04.2014 - 10:59
fonte

Leggi altre domande sui tag