2017-05-22 3 views
2

をクラッシュし、私はHerokuのにそれを展開しますが、ブラウザで、私はエラーを取得する:私が得るHerokuのログでNodeJSプロジェクトが成功しHerokuのにデプロイするが、アプリケーションは、私がアプリケーションを構築しようとしています

Application error 
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. 

2017-05-22T03:58:35.925318+00:00 app[api]: Release v19 created by user [email protected] 
2017-05-22T03:58:35.925318+00:00 app[api]: Deploy 53f249eb by user [email protected] 
2017-05-22T03:58:08.000000+00:00 app[api]: Build succeeded 
2017-05-22T03:58:36.628543+00:00 heroku[web.1]: State changed from crashed to starting 
2017-05-22T03:58:42.060016+00:00 heroku[web.1]: Starting process with command `: node server.js` 
2017-05-22T03:58:44.343952+00:00 heroku[web.1]: State changed from starting to crashed 
2017-05-22T03:58:44.330459+00:00 heroku[web.1]: Process exited with status 0 
2017-05-22T03:58:45.036725+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=myappfrontend.herokuapp.com request_id=c13cbc90-b663-4202-bf23-fdd7839bd11a fwd="124.13.47.105" dyno= connect= service= status=503 bytes= protocol=https 
2017-05-22T03:58:46.355457+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=myappfrontend.herokuapp.com request_id=10d85673-140b-4510-a5cb-b6b3db20e1a7 fwd="124.13.47.105" dyno= connect= service= status=503 bytes= protocol=https 
デプロイで

は私が取得:

remote: Building source: 
remote: 
remote: -----> Node.js app detected 
remote: 
remote: -----> Creating runtime environment 
remote:   
remote:  NPM_CONFIG_LOGLEVEL=error 
remote:  NPM_CONFIG_PRODUCTION=false 
remote:  NODE_VERBOSE=false 
remote:  NODE_ENV=production 
remote:  NODE_MODULES_CACHE=true 
remote: 
remote: -----> Installing binaries 
remote:  engines.node (package.json): 7.10.0 
remote:  engines.npm (package.json): 4.2.0 
remote:   
remote:  Downloading and installing node 7.10.0... 
remote:  npm 4.2.0 already installed with node 
remote: 
remote: -----> Restoring cache 
remote:  Loading 2 from cacheDirectories (default): 
remote:  - node_modules 
remote:  - bower_components (not cached - skipping) 
remote: 
remote: -----> Building dependencies 
remote:  Installing node modules (package.json) 
remote: 
remote: -----> Caching build 
remote:  Clearing previous node cache 
remote:  Saving 2 cacheDirectories (default): 
remote:  - node_modules 
remote:  - bower_components (nothing to cache) 
remote: 
remote: -----> Build succeeded! 
remote: -----> Discovering process types 
remote:  Procfile declares types -> web 
remote: 
remote: -----> Compressing... 
remote:  Done: 47.1M 
remote: -----> Launching... 
remote:  Released v20 
remote:  https://myappfrontend.herokuapp.com/ deployed to Heroku 
remote: 
remote: Verifying deploy... done. 

私が持っているProcfile:ウェブ:ノードserver.js

マイserver.js:

"use strict"; 
var express  = require('express'), 
    bodyParser = require('body-parser'), 
    fs   = require('fs'), 
    app   = express(), 
    customers = JSON.parse(fs.readFileSync('data/customers.json', 'utf-8')), 
    states  = JSON.parse(fs.readFileSync('data/states.json', 'utf-8')); 

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

//Would normally copy necessary scripts into src folder (via grunt/gulp) but serving 
//node_modules directly to keep everything as simple as possible 
app.use('/node_modules', express.static(__dirname + '/node_modules')); 

//The src folder has our static resources (index.html, css, images) 
app.use(express.static(__dirname + '/src')); 


app.post('/api/auth/login', (req, res) => { 
    var userLogin = req.body; 
    //Add "real" auth here. Simulating it by returning a simple boolean. 
    res.json(true); 
}); 

app.post('/api/auth/logout', (req, res) => { 
    res.json(true); 
}); 

// redirect all others to the index (HTML5 history) 
app.all('/*', function(req, res) { 

    res.sendFile(__dirname + '/src/index.html'); 
}); 
app.set('port', (process.env.PORT || 5000)); 
app.listen(app.get('port'), function() { 
    console.log('Node app is running on port', app.get('port')); 
}); 

そして最後に私のpackage.json:

{ 
    "name": "angular-jumpstart", 
    "author": "Dan Wahlin", 
    "version": "2.0.0", 
    "repository": "https://github.com/danwahlin/angular-jumpstart", 
    "scripts": { 
     "clean": "del-cli \"src/app/**/*.js\" \"src/app/**/*.js.map\" \"src/devDist\" \"src/dist\"", 
     "build": "npm run clean && webpack --progress --watch", 
     "tsc": "tsc", 
     "tsc:w": "tsc -w", 
     "start:nodemon": "tsc && concurrently \"tsc -w\" \"nodemon server.js\" ", 
     "start": "tsc && concurrently \"tsc -w\" \"node server.js\" " 
    }, 
    "license": "ISC", 
    "dependencies": { 
     "@angular/common": "4.0.0", 
     "@angular/compiler": "4.0.0", 
     "@angular/compiler-cli": "4.0.0", 
     "@angular/core": "4.0.0", 
     "@angular/forms": "4.0.0", 
     "@angular/http": "4.0.0", 
     "@angular/platform-browser": "4.0.0", 
     "@angular/platform-browser-dynamic": "4.0.0", 
     "@angular/router": "4.0.0", 
     "@angular/upgrade": "4.0.0", 
     "@angular/platform-server": "4.0.0", 
     "@angular/tsc-wrapped": "4.0.0", 
     "@angular/animations": "4.0.0", 
     "systemjs": "0.19.47", 
     "core-js": "2.4.1", 
     "rxjs": "5.2.0", 
     "zone.js": "0.8.5", 
     "express": "4.15.2", 
     "body-parser": "1.17.1" 
    }, 
    "devDependencies": { 
     "@types/node": "7.0.11", 
     "@types/google-maps": "3.2.0", 
     "concurrently": "3.4.0", 
     "lite-server": "2.3.0", 
     "typescript": "2.2.1", 
     "opn": "4.0.2", 
     "del-cli": "0.2.1", 
     "webpack": "2.3.2", 
     "html-webpack-plugin": "2.28.0", 
     "webpack-merge": "4.1.0", 
     "extract-text-webpack-plugin": "2.1.0", 
     "angular2-template-loader": "0.6.2", 
     "angular-router-loader": "0.5.0", 
     "awesome-typescript-loader": "3.1.2", 
     "css-loader": "0.27.3", 
     "to-string-loader": "1.1.5", 
     "raw-loader": "0.5.1", 
     "style-loader": "0.16.0", 
     "@ngtools/webpack": "1.3.0" 
    }, 
     "engines": { 
    "node": "7.10.0", 
    "npm": "4.2.0" 
    } 
} 

任意のアイデアなぜそれが動作しませんか? Herokuログに役立つエラーメッセージが表示されません。

+0

ローカルでサーバーを実行しようとします。コマンド「heroku run local'」を使用してください。サーバーに何らかのエラーがあるようです。 – chenkehxx

+0

コマンド 'heroku run local'を実行すると、" bash:line 0:local:関数内でのみ使用できます "というエラーが表示されます。私は 'heroku local web'で走ろうとしました。 ' [WARN]ヌルのプロパティ '1'を読むことができません。 [OKAY] package.jsonファイルが見つかりました。 'npm start'を試しています [WARN] ENVファイルが見つかりません プロパティを読み取ることができません[WARN]「1」ヌル [OKAY] package.jsonファイルの発見 - 「NPMのstart'' をしようと、私はローカルホストからの私のアプリにアクセスすることができます:5000。 – max

+0

それはあなたの 'package.json'に何か問題があることを意味していますので、注意深くチェックする必要があります。 'Procfile'で定義したコマンドを実行しようとすることもできます。 – chenkehxx

答えて

0

あなたのコードは、ファイルが存在しないため、data/customers.jsonファイルを読み取ることができません。このファイルをあなたのコードとともにHerokuにアップロードすると、サーバーが実行されます。

fs.js:583 
    return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); 
       ^

Error: ENOENT: no such file or directory, open 'data/customers.json' 
    at Object.fs.openSync (fs.js:583:18) 
    at Object.fs.readFileSync (fs.js:490:33) 
    at Object.<anonymous> (/tmp/test.js:6:33) 
    at Module._compile (module.js:571:32) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 
    at tryModuleLoad (module.js:447:12) 
    at Function.Module._load (module.js:439:3) 
    at Module.runMain (module.js:605:10) 
    at run (bootstrap_node.js:425:7) 
+0

herokuサーバーにデプロイされているdata/customers.jsonとdata/states.jsonの両方のheroku bashをチェックしました。 – max

+0

'PORT'環境変数の設定は何ですか?設定していない場合は、ポート5000にアクセスできますか? – sabrehagen

+0

私はそれを設定しませんでした。私はそれが自動的にherokuサーバーに基づいて割り当てられると思った?私が手動でheroku bashでノードserver.jsを実行すると、 "Node app is port 26597"が表示されます。 – max

関連する問題