Estoy tratando de implementar un nodejs con la aplicación expressjs. Mi tubería es esta:
Esto crea un artefacto correcto:
Podemos comprobar aquí:
Ahora creo esta versión que usa el artefacto que mencioné anteriormente:
Los pasos en el lanzamiento:
Y después de la ejecución del lanzamiento (éxito) en appname.scm.azurewebsites.net en la carpeta wwwroot, tengo los archivos correctos:
Pero la aplicación nunca comienza porque nunca digo cómo comienza, creo.
¿Qué pondría en la acción de implementación posterior? nodo servidor/servidor.js? (server.js está en la carpeta del servidor), npm start? En mi paquete.json, si uso npm start, entonces se ejecutará node server/server.js. Porque en local, si ejecuto mi aplicación, tengo que ejecutar npm start o node server/server.js
En el archivo package.json , normalmente establece el archivo principal, "main": "server.js" , en su caso creo que debería definir main como "main": "server.js" y mover el archivo server.js desde el directorio del servidor al directorio root directory del proyecto.
Si observa el flujo de registro, normalmente para iniciar el proyecto, Azure ejecuta node server o algo que definió en el package.json como principal.
He pegado algunas partes del flujo de registro de Azure aquí para que pueda ver lo que sucede en Azure:
2022-05-09T18:19:04.222521897Z # Enter the source directory to make sure the script runs where the user expects 2022-05-09T18:19:04.222528898Z cd "/home/site/wwwroot" 2022-05-09T18:19:04.222535898Z 2022-05-09T18:19:04.222542298Z export NODE_PATH=/usr/local/lib/node_modules:$NODE_PATH 2022-05-09T18:19:04.222548498Z if [ -z "$PORT" ]; then 2022-05-09T18:19:04.222554799Z export PORT=8080 2022-05-09T18:19:04.222561899Z fi 2022-05-09T18:19:04.222783509Z 2022-05-09T18:19:04.222805710Z node server.js