我有一个在本地工作的休息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');
时崩溃。我尝试了没有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=
如果我对需求行发表评论,一切正常。
答案 0 :(得分:1)
当需要文件时,你应该省略__dirname,因为你可以只需要相对于index.js文件的路径。你也应该放弃' .js'当需要文件。还要确保文件名匹配(区分大小写),因为' User.js'不同于' user.js'
尝试:
var userController = require('./controller/User');