Publica una aplicació de Node.js

Què aconsegueixes: la teva aplicació de Node corrent en el domini d’un dels teus llocs, amb HTTPS, i aixecant-se sola si cau.

Abans de començar

Necessites un lloc ja creat, i l’aplicació necessita dues coses: un package.json i un fitxer d’entrada, per exemple app.js.

I alguna cosa que cal decidir abans de començar: el domini del lloc passa a servir l’aplicació. Si aquí tenies una web, deixa de veure’s. Si el que vols és provar, utilitza un lloc a part.

La teva aplicació ha d’escoltar en el port que li passem en la variable d’entorn PORT. Si el tens escrit a foc, no respondràs.

Passos

  1. Puja els fitxers a la carpeta del lloc, amb el Gestor de fitxers o per SFTP (Puja els fitxers: FTP, SFTP i el gestor de fitxers).

  2. Menú Llocs → Aplicacions Node.js → Aplicació nova.

  3. Rellena:

    • Lloc — domini passarà a servir aquesta aplicació.

    • Nom — per reconèixer-la a la llista.

    • Fitxer d’entrada — el que arrenca l’aplicació, dins de la teva carpeta. Per exemple app.js.

    • Carpeta (opcional) — dintre de la carpeta del lloc. Buita, l’arrel.

    • Variables d’entorn (opcional) — una per línia, amb la forma CLAVE=valor.

  4. Crea l’aplicació.

En iniciar-la instal·lem les dependències (npm install --production) i li donem el seu port en PORT.

Com saps que ha sortit bé

La fila de l’aplicació ha de quedar en marxa, i https://tudominio.com Heu de tornar el que retorna la teva aplicació, no la web d’abans.

Si no surt, obre el Registre de l’aplicació des de la seva fila: aquí està el que ha escrit Node en arrencar, que és on es veu l’error de veritat.

Els botons Iniciar, Reiniciar i Aturar són a la mateixa fila.

Problemes habituals

L’aplicació arrenca i el domini dóna error 502 o no respon

Gairebé sempre és el port. Ha d’escoltar en processos.env.PORT, no en un número escrit a mà. Mira’l en el registre: si posa que escolta en el 3000 i nosaltres li vam donar un altre, és això.

El registre diu «Cannot find module»

Falta una dependència en el package.json, o l’instal·leu com a dependència de desenvolupament. Com que instal·lem amb --production, les de desenvolupament no entren: passa-la a les normals i reinicia.

Puja els fitxers i no troba el fitxer d’entrada

La ruta del fitxer d’entrada és relativa a la carpeta de l’aplicació, no a l’arrel del lloc. Si la teva app.js està dins d’una subcarpeta, posa-la a «Carpeta».

He pujat canvis i segueix servint el d’anterior

No s’ha de carregar el codi en iniciar. Prem « Reinicia» a la fila i torna a mirar.

La meva web abans ha desaparegut

És el que fa: el domini del lloc passa a servir l’aplicació. Atura l’aplicació i el lloc torna a servir els teus fitxers.

Necessito una base de dades per a l’aplicació

Les bases de dades dels teus llocs són MariaDB i són aquí mateix. Si vols PostgreSQL o Redis, es contracten a part: mira Bases de dades gestionades per a Projectes i VPS.

Puc tenir dues aplicacions al mateix domini?

No: un domini només pot servir-ne una. Usa un altre lloc, o un subdomini amb el seu propi lloc.

L’aplicació cau cada poc

La tornem a aixecar sola cada vegada, així que el servei es manté, però el problema està en el teu codi. El registre desa el d’abans de cada caiguda: aquí hi ha la pista.