Quali tipi di operazioni dovrebbero andare in Node.js in contrapposizione a funzioni javascript lato client

0

Sto creando un'app Web con molte chiamate API diverse: la nostra API REST proprietaria, le chiamate API librerie di terze parti, ecc. Tutte queste chiamate recuperano dati, aggiornano dati, eliminano dati o creano dati. Praticamente tutte le nostre dipendenze di terze parti forniscono API JavaScript e API dei nodi. Inizialmente ho gravitato sull'uso delle API JavaScript per effettuare queste chiamate dal lato client, accoppiandole con i miei componenti (React.js). Ora noto che, man mano che l'app diventa sempre più grande, molte di queste chiamate API stanno ingombrando il codice. A parte trasferirli a un componente di ordine superiore che può rendere riutilizzabili tutte queste chiamate, ritengo quindi che dovrei probabilmente elevarle tutte in Node.js in modo che siano completamente fuori dalla base del codice front-end.

Ho difficoltà a stabilire in quale direzione dovrei andare inserendo queste chiamate da qualche parte dove possono essere usate efficacemente senza ingombrare il 'back-frontend' il più possibile. Quali sono i vantaggi nell'inserire tutte queste chiamate in Node in opposizione a un componente javascript lato client di alto livello? Esistono modelli / terminologia di progettazione che possono spiegare ulteriormente alcuni di questi progetti?

    
posta connected_user 21.12.2017 - 19:18
fonte

1 risposta

1

Ci sono due fattori principali in gioco qui. Sicurezza e costo.

  1. Costo

Ogni ciclo di CPU e MB di larghezza di banda su un server che possiedi ti costerà denaro. Quindi c'è una grande spinta per spingere il più possibile verso il cliente.

Al contrario, se stai filtrando i dati, farlo sul server prima di passarlo al tuo cliente può, in alcuni casi, ridurre i costi della larghezza di banda.

Se si utilizzano servizi di terzi, spesso richiedono di pagare per chiamata al servizio. Per impedire alle persone che utilizzano il tuo account di effettuare molte chiamate al di fuori della tua app, dovrai mantenere la tua chiave API o il lato utente / password del server e effettuare la chiamata da lì.

  1. Sicurezza

Non c'è nulla che costringa gli utenti a usare il tuo cliente. Se il tuo cliente limita il modo in cui l'utente utilizza la tua applicazione; ad esempio, Facebook non ti consente di rimuovere gli annunci dal tuo feed di notizie. Quindi devi eseguire tale elaborazione sul tuo server.

Altrimenti qualcuno potrebbe semplicemente scrivere un nuovo client di Facebook che mostra solo i post dei tuoi amici in ordine di data e metterti fuori mercato.

Inoltre, se vuoi distinguere tra i tuoi utenti, impedendo ad alcuni di intraprendere determinate azioni, come avere amministratori e utenti normali, queste funzioni dovranno essere implementate lato server e protette da una qualche forma di sicurezza.

    
risposta data 21.12.2017 - 21:00
fonte

Leggi altre domande sui tag