¿Cómo puedo averiguar qué dependencia falta en un proyecto Node.js?

Estoy intentando implementar mi proyecto Node.js en OpenShift y obtengo 503 cuando bash ver el sitio.

Soy consciente de la investigación que esto indica un problema con mi proyecto de servidor web. Al revisar los registros, he determinado que esto parece ser un problema de una dependencia faltante. Sin embargo, los registros no parecen decirme cuál:

module.js:340 throw err; ^ Error: Cannot find module '/var/lib/openshift/551c63f85973ca05430002b8/app-root/runtime/repo/server.js' 

He verificado que todos los paquetes que mi servidor web “requiere” están presentes en el archivo package.json y en la carpeta node_modules.

 { "name": "NekoList", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "bcrypt-nodejs": "0.0.3", "body-parser": "~1.12.4", "cookie-parser": "~1.3.5", "debug": "~2.2.0", "ejs": "~2.3.1", "express": "~4.12.4", "mongoose": "^4.0.3", "morgan": "~1.5.3", "node-gyp": "^2.0.1", "secure-random": "^1.1.1", "serve-favicon": "~2.2.1" } } 

Al ejecutar una npm install o npm update no obtengo errores. Recibo advertencias sobre una dependencia no satisfecha en la debug ~2.2.0 , pero tengo la misma advertencia en otro proyecto y no causa un error crítico. No tengo código que use este módulo. Simplemente está ahí porque era parte de la plantilla.

 minimist@0.0.8 node_modules/node-gyp/node_modules/mkdirp/node_modules/minimist npm WARN unmet dependency /var/lib/openshift/551c63f85973ca05430002b8/app-root/runtime/repo/node_modules/express/node_modules/finalhandler requires debug@'~2.2.0' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined 

Además, el proyecto se ejecuta bien en mi entorno de desarrollo local utilizando el servidor integrado Webstorm.

Estoy buscando saber qué puedo hacer para solucionar, o al menos arrojar algo de luz sobre la raíz del problema.

Gracias por adelantado.

[Editar] Entonces, según lo que dice Saba Hassan, parece que el nodo está intentando ejecutar el archivo no existente server.js , en lugar del punto de entrada que he definido, bin/www

Entonces, agregué un archivo llamado server.js con el servidor de ejemplo básico. Openshift todavía no puede encontrar el archivo. Mismo mensaje de error. [/Editar]

[Solución] Llegué a la conclusión de que el supuesto básico de esta pregunta es incorrecto. Respaldé una respuesta que explica por qué OpenShift está buscando en el lugar equivocado el punto de inserción. Sin embargo, comencé este hilo para averiguar por qué me estaba faltando un error de dependencia. Incluso después de implementar la solución a continuación, recibí el mismo mensaje de error, acerca de perder una dependencia.

La explicación es la siguiente:

Por alguna razón, cualquier problema con el archivo del punto de inserción o cualquier archivo que requiera devolverá un error que indique que falta el módulo del archivo del punto de inserción.

Tenía una variable en un archivo que no estaba configurada correctamente para OpenShift y el mensaje de error más útil contenido en los registros de OpenShift fue que faltaba el módulo raíz.

Los errores de “dependencia faltante” de la conclusión podrían significar que tiene algún tipo de error lógico, en algún lugar de todo su proyecto. [/Solución]

Está utilizando la propiedad "scripts" , pero en OpenShift debería usar "main" lugar. Esto se debe a que OpenShift utiliza el supervisor de nodo para iniciar y administrar su aplicación Node.js. Parece que si no proporciona una "main" forma predeterminada es server.js

Creo que está ejecutando el comando node server.js desde el directorio incorrecto. Navegue al directorio donde existe el archivo server.js y luego ejecute el comando.