2015-03-19 33 views
0

我的REST API,在本地工作的開始:需要在Heroku與文件夾崩潰節點JS

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:[email protected]: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

什麼是應用程序的當前工作目錄? 'process.cwd()'應該有所幫助。 – 2015-03-19 00:33:25

+0

我評論了require函數並顯示了'process.cwd()'和'__dirname'的值,它實際上是相同的:/ app。所以我嘗試了一個'require(「../ User」);'但我仍然得到錯誤... – tufekoi 2015-03-19 09:18:06

回答

1

當您需要文件時,您應該省略__dirname,因爲您只需要相對於index.js文件的路徑。需要文件時,您也應該忽略'.js'。另外,還要確保你文件名匹配(區分大小寫),因爲「user.js的」是不同於「user.js的」

嘗試:

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

我已經試過這種方式,但它也不工作,同樣的錯誤消息。 – tufekoi 2015-03-19 09:18:28

+0

你可以仔細檢查你的文件夾結構和文件名,並在這裏列出?如果這是你在這裏列出的,那麼沒有理由你會收到這個錯誤。 – mattetre 2015-03-19 10:55:43

+0

我編輯我的問題,並用屏幕替換文件列表。 – tufekoi 2015-03-19 11:05:12