私は Node.js アプリに取り組んでおり、twitter API トークン/シークレットを公開するconfig.jsファイルを使用しています。私がこれを行っているのは、完成後にアプリケーションをオープンソース化する予定であり、それらを非公開にしたい (したがって、そのファイルを.gitignore
.
とにかく、私の質問に - 私は次のエラーログを取得しています:
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
私のファイル名はで、アプリconfig.js
で: を実行しています。NPM にないためvar config = require('./config')
、ファイルに依存関係としてリストされていません。package.json
foreman と Procfile を使用してローカルで実行すると (heroku のドキュメントで説明されているように) うまく機能します。しかし、ローカル ファイルが必要なときにエラーが発生する理由がわかりません。config.js
は my と同じディレクトリ レベルにapp.js
あるため、必要なパスは正しいです。
編集:以下は、私が使用しているコードの一部ですapp.js
:
var express = require('express')
, sys = require('sys')
, request = require('request')
, config = require('./config')
ありがとう - どんな助けでも大歓迎です!