使用节点 js 在 heroku 上需要文件夹崩溃

require folder crash on heroku with node js

我开始休息 api 在本地工作 :

这是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'); 时它崩溃了。我尝试了不使用目录名和文件名的所有可能情况,但我真的不知道这里出了什么问题,我没有找到与此错误相关的 post。

我的 heroku 网页上有什么:

"An error occurred in the application and your page could not be served. Please try again in a few moments. If you are the application owner, check your logs for details."

和 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=

如果我注释 require 行,一切正常。

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

尝试:

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