2017-05-29 18 views
0

私はHeroku上で単純なノードアプリケーションを実行しようとしています。ここ
は私server.js(出発点)である:それはアプリがXXXXポートで開始される印刷コンソールでHeroku App(Express React SSR)がクラッシュしました

{ 
    "name": "medium", 
    "version": "1.0.0", 
    "description": "SSR react static website", 
    "main": "server.js", 
    "scripts": { 
    "build": "node_modules/.bin/webpack", 
    "dev": "node_modules/.bin/webpack-dev-server", 
    "lint": "eslint js/**/*.js server.js", 
    "watch": "node_modules/.bin/webpack --watch" 
    }, 
    "engines": { 
    "node": "6.10.3" 
    }, 
    }, 
    "keywords": [ 
    "react" 
    ], 
    "dependencies": { 
    "axios": "^0.16.1", 
    "babel-loader": "^7.0.0", 
    "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-react": "^6.24.1", 
    "babel-register": "^6.24.1", 
    "express": "^4.15.3", 
    "history": "^4.6.1", 
    "lodash": "^4.17.4", 
    "react": "^15.5.4", 
    "react-disqus-thread": "^0.4.0", 
    "react-dom": "^15.5.4", 
    "react-google-maps": "^7.0.0", 
    "react-icons": "^2.2.5", 
    "react-redux": "^5.0.5", 
    "react-router": "^4.1.1", 
    "react-router-dom": "^4.1.1", 
    "react-transition-group": "^1.1.3", 
    "reactstrap": "^4.6.2", 
    "redux": "^3.6.0", 
    "redux-thunk": "^2.2.0", 
    "shortid": "^2.2.8" 
... 
} 

:ここ

require('babel-register') 

const express = require('express') 
const React = require('react') 
const ReactDOMServer = require('react-dom/server') 
const ReactRouter = require('react-router') 
const StaticRouter = ReactRouter.StaticRouter 
const _ = require('lodash') 
const fs = require('fs') 
const PORT = process.env.PORT || 8080 
const baseTemplate = fs.readFileSync('./index.html') 
const template = _.template(baseTemplate) 
const App = require('./js/App').default 

const server = express() 
server.use('/_public', express.static('./_public')) 

server.use((req, res) => { 
    const context = {} 
    const body = ReactDOMServer.renderToString(
    React.createElement(StaticRouter, {location: req.url, 
     context: context}, 
    React.createElement(App)) 
) 

    res.write(template({body: body})) 
    res.end() 
}) 

console.log('listening on port', PORT) 

package.jsonあります。しかし、その後アプリは、次のメッセージでクラッシュ

2017-05-29T10:15:13.241869+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=medium-if-ua.herokuapp.com request_id=bc8294c4-4754-4875-8cdb-d6921212f7bb fwd="178.136.244.44" dyno= connect= service= status=503 bytes= protocol=https 
あなたは try/catchブロック内のレンダリングをラップし、スタックトレースにエラーを送信することで、問題をデバッグすることができ

答えて

0

小さな変化をserver.js
1. server.listen(PORT) - は偶然削除されたので、ノードサーバーは常に終了しました。 enter image description here
2. babel-registerパッケージにプリセットを追加しました:

0

:私はしました

server.use((req, res) => { 
    try { 
    const context = {} 
    const body = ReactDOMServer.renderToString(
     React.createElement(StaticRouter, 
     {location: req.url, context: context}, 
     React.createElement(App) 
    ) 
    ) 

    res.write(template({body: body})) 
    res.end() 
    } catch (error) { 
    const result = [error.message, error.stack].join('\r\n') 
    res.send(result) 
    } 
}) 
+0


enter image description here
そして、すべてのすべてが正常に動作した後に変なHMMが、同じ結果を - http://i.imgur.com/Svxk6QI.png –

+0

'てみてください。それが他の人たちを助けるように見えるので、それはそうです。 –

+0

いいえ、それは役に立ちません( –

関連する問題