Node.js 需要Heroku上的文件
我在将nodejs应用程序部署到Heroku时遇到问题。Git推送、正确构建和部署,但随后崩溃 崩溃似乎是由于对我自己的非模块文件使用require造成的,例如: var bla=要求(“./bla.js”) 从“heroku run bash”中,我还可以看到,当我对自己的一个文件执行请求时,会出现奇怪的行为,它会将垃圾喷入终端几分钟,而不是预期的结果 同一应用程序在本地和其他服务器上运行良好 准确的错误消息总是有用的:Node.js 需要Heroku上的文件,node.js,heroku,Node.js,Heroku,我在将nodejs应用程序部署到Heroku时遇到问题。Git推送、正确构建和部署,但随后崩溃 崩溃似乎是由于对我自己的非模块文件使用require造成的,例如: var bla=要求(“./bla.js”) 从“heroku run bash”中,我还可以看到,当我对自己的一个文件执行请求时,会出现奇怪的行为,它会将垃圾喷入终端几分钟,而不是预期的结果 同一应用程序在本地和其他服务器上运行良好 准确的错误消息总是有用的: node.js:134 throw e; // proc
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
我制作了一个简单的测试文件来演示这个问题:
var express = require("express"),
log = require("./analytics/log.js").log;
// if I comment out this line it works, the file does exist within heroku
// and works outside of heroku, but it seems any of my own files being
// require'd will trigger the crash
var app = module.exports = express.createServer();
app.configure(function(){
app.use(express.static(__dirname + "/public"));
app.use(express.methodOverride());
app.use(app.router);
});
app.all("*", function(request, response) {
response.end("bla");
});
app.listen(process.env.PORT || 3000);
问题似乎是在Linux上创建的文件是“text/x-c”而不是“text/plain”。bla是文件夹还是模块?你提交了文件夹bla吗?它只是一个JavaScript文件,尽管这个问题也会影响文件夹中的文件。这些文件确实存在,它们在heroku bash+上可见,我可以对它们进行跟踪,并看到它们如预期的那样。需要任何安装的模块都可以正常工作。你介意把我指给heroku repo吗?这不是公共repo,但我会添加一个例子。我想我已经发现了更多的问题。nodejs项目及其文件是在linux中创建的,但我正在从OS X推送到heroku。我在OS X中创建的文件确实“需要”正确。