我創建了一個簡單的反應程序使用this車間混帳與我小的變化基本呈現服務器端的區別。 所以當我在本地運行NODE_ENV=server node server.js
它工作正常。但是我試圖在Bluemix Nodejs服務器上嘗試部署此應用程序失敗。這裏有一個日誌: 這裏是我的server.js代碼:是什麼運行服務器端做出反應本地渲染和真實服務器的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)
附:很明顯,它不瞭解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) –