私はマイナーな変更を加えてthisワークショップgitを使用してサーバサイドレンダリングで簡単なリアクションアプリを作成しました。 したがって、ローカルで実行すると、それは正常に動作します。NODE_ENV=server node server.js
しかし、Bluemix the Nodejsサーバーの試用版にこのアプリを導入しようとした私の試みは失敗しました。実行するサーバー側のレンダリングをローカルと実際のNodeJSサーバー(IBM Bluemix)で実行するのとの違い
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 = 5050
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)
server.listen(PORT)
P.S.:ここ は私server.jsコードです:ここではログがあります js/App.jsのES6構文は理解できませんが、ローカルサーバー上で動作することは明らかです。デフォルトNODE_ENV=production
ことで しかしBluemix docsによると、私は.profile.dディレクトリに node_env.shコードファイルを作成:
export NODE_ENV=server;
をしかし、私は、このファイルの変更がnode_envかはわかりません。
完全ソースをgithubレポにチェックインできますか? –
@RamVennam私のコードはローカルマシンで正常に動作します。はい、[Gitlab](https://gitlab.com/ytaras/pinobeton2/tree/ServerSR)にもあります。 –