使用节点js要求heroku上的文件夹崩溃

时间:2015-03-19 00:18:00

标签: node.js heroku

我有一个在本地工作的休息api的开始:

file listing

这是index.js的内容:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var passport = require('passport');
var userController = require(__dirname + './controller/User.js');
/*var authController = require('./controller/auth');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(passport.initialize());

mongoose.connect('mongodb://server:mongolab0809@ds063870.mongolab.com:63870/diffuse');

var router = express.Router();
router.route('/users')
    .post(userController.postUsers)
    .get(authController.isAuthenticated,  userController.getUsers);

app.use('/api', router);
app.listen(port);
console.log('Magic happens on port ' + port);*/

app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.get('/', function(request, response) {
    response.send('Welcome on guarded-sea-3175!');
});
app.listen(app.get('port'), function() {
    console.log("Node app is running at localhost:" + app.get('port'));
});

当heroku服务器到达userController = require(__dirname + './controller/User.js');时崩溃。我尝试了没有dirname,并且每个案例都可能用于文件名,但我真的不知道这里有什么问题,我没有找到任何相对的帖子来解决这个错误。

我在heroku网页上的内容:

  

“应用程序中发生错误,无法提供您的页面。请稍后再试。如果您是应用程序所有者,请查看日志以获取详细信息。”

和heroku日志:

2015-03-19T00:11:33.818642+00:00 heroku[router]: at=error code=H10 
desc="App crashed" method=GET path="/" 
host=guarded-sea-3175.herokuapp.com request_id=f7bf879e-c606-4a0f-bdae-7e3c9a33dcf5 fwd="82.235.64.7" 
dyno= connect= service= status=503 bytes=

如果我对需求行发表评论,一切正常。

1 个答案:

答案 0 :(得分:1)

当需要文件时,你应该省略__dirname,因为你可以只需要相对于index.js文件的路径。你也应该放弃' .js'当需要文件。还要确保文件名匹配(区分大小写),因为' User.js'不同于' user.js'

尝试:

var userController = require('./controller/User');