使用React问题进行服务器渲染

时间:2017-02-01 12:31:39

标签: javascript node.js reactjs webpack babeljs

我希望我的服务器代码能够用ES-5本身编写。在我的server.js文件中,我导入了client.js文件。 在client.js

 // i am only pasting the necessary codes i have written. 
 export default render = (req, res) => {
    const componentHTML = ReactDOM.renderToString(
        <Provider store={store}>
          <RouterContext {...props} />
        </Provider>); 
res.status(200).send(`<html>
                      <head><title>Test</title></head>
                      <body><div id="app">${componentHTML}</div>
                      <script type="text/javascript" src="./app.js"></script>
                      </body></html>`);

 }

而我的server.js文件是

import App from './client.js';
const express = require('express');
app.use(express.static(publicPath));
app.get('*', App);

当我捆绑我的server.js文件,client.js文件并运行时,完美地运行。 但我想在我的server.js文件中导入我的捆绑客户端文件,这样我就可以只运行node ./server.js。 所以我尝试更改看起来像

的server.js文件
const App = require('./dist/client.bundle.js');
console.log(App) // output is {} why ??;
const express = require('express');
app.use(express.static(publicPath));
app.get('*', App); // i also tried App.default both didn't work

运行后我得到了这个错误。

  

/home/Work/test/node_modules/express/lib/router/route.js:196           抛出新错误(msg);           ^错误:Route.get()需要回调函数但得到[对象对象]

如果我在服务器代码中导入捆绑文件,为什么会出现此错误?

由于

0 个答案:

没有答案