微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Heroku在heroku上找不到本地模块(Node.js)

我正在开发一个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,我在我的应用程序中执行:var config = require(‘./ config’).我没有将它列为我的package.json文件中的依赖项,因为它不在NPM中.

在本地与工头和procfile一起运行(就像heroku的文档说的那样)工作得很好.但是,当我需要一个本地文件时,我很困惑为什么它会给我一个错误. config.js与我的app.js位于同一目录级别,因此要求它的路径是正确的.

编辑:下面是我在app.js中使用的代码部分:

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

谢谢 – 任何帮助将不胜感激!

解决方法

因为你把config.js文件放在.gitignore中,所以它没有像你说的那样被推送到Heroku服务器.对于您想要做的事情,您通常会使用 Heroku’s config vars设置环境变量,然后由应用程序读入:
$heroku config:add TWITTER_TOKEN=<token> TWITTER_SECRET=<secret>

然后在app.js文件中,您可以使用以下命令访问这些环境变量:

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

原文地址:https://www.jb51.cc/js/155610.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐