2012-04-10 28 views
5

Estoy trabajando en una aplicación Node.js, y estoy usando un archivo config.js que expone mis tokens/secretos de API de Twitter. Estoy haciendo esto porque planeo abrir la fuente de la aplicación después de que la termine y me gustaría mantenerla en privado (y por lo tanto, he puesto ese archivo en mi .gitignore.Heroku no puede encontrar el módulo local en heroku (Node.js)

De todos modos, a mi pregunta - I ' m conseguir el siguiente registro de errores:

2012-04-09T22:41:12+00:00 app[web.1]: node.js:134 
2012-04-09T22:41:12+00:00 app[web.1]:  ^
2012-04-09T22:41:12+00:00 app[web.1]:   throw e; // process.nextTick error, or 'error' event on first tick 
2012-04-09T22:41:12+00:00 app[web.1]: Error: Cannot find module './config' 
2012-04-09T22:41:12+00:00 app[web.1]:  at require (module.js:348:19) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Function._load (module.js:266:25) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Function._resolveFilename (module.js:320:11) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Object.<anonymous> (/app/app.js:6:19) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Module._compile (module.js:404:26) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Object..js (module.js:410:10) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Function._load (module.js:297:12) 
2012-04-09T22:41:12+00:00 app[web.1]:  at EventEmitter._tickCallback (node.js:126:26) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Module.load (module.js:336:31) 
2012-04-09T22:41:12+00:00 app[web.1]:  at Array.<anonymous> (module.js:423:10) 
2012-04-09T22:41:13+00:00 heroku[web.1]: State changed from starting to crashed 
2012-04-09T22:41:13+00:00 heroku[web.1]: Process exited with status 1 

mi nombre del archivo es config.js, y estoy haciendo un: var config = require('./config') en mi aplicación no tengo que aparece como una dependencia en mi archivo package.json, ya que no se encuentra. NPM.

Ejecución local con el capataz y el Procfile (como los documentos de heroku dicen que hacer) trabajo gre a. Pero, estoy confundido por qué me está dando un error cuando estoy requiriendo un archivo local. config.js está en el mismo nivel de directorio que mi app.js, por lo que la ruta para requerirlo es correcta.

EDITAR: A continuación se muestra la parte del código que estoy utilizando en app.js:

var express  = require('express') 
    , sys   = require('sys') 
    , request  = require('request') 
    , config  = require('./config') 

Gracias - Cualquier ayuda sería muy apreciada!

+0

has intentado formean start desde tu linea de comando? Qué dice ? – Dhiraj

+0

Hola @userD, sí, puedo hacerlo con éxito (tenga en cuenta el penúltimo párrafo de mi pregunta). = ( – Connor

+0

es posible que muestre el código para que la depuración sea fácil – Dhiraj

Respuesta

13

Dado que coloca el archivo config.js en su .gitignore, no está siendo enviado al servidor Heroku, como usted dijo que tenía la intención. Por lo que usted dice que quiere hacer, normalmente se utilizaría Heroku's config vars para establecer las variables de entorno que se leen en por su aplicación:

$ heroku config:add TWITTER_TOKEN=<token> TWITTER_SECRET=<secret> 

A continuación, en el archivo de app.js Puede acceder a estas variables de entorno con:

var token = process.env['TWITTER_TOKEN']; 
var secret = process.env['TWITTER_SECRET']; 
+0

Eso tiene sentido. Ni siquiera pensé en eso. ¡Gracias! – Connor

Cuestiones relacionadas