【发布时间】:2019-05-05 17:22:18
【问题描述】:
首先我想说我是 React 和 NodeJS 的新开发者。
我想使用以下技术: - 作为客户做出反应 - NodeJS 作为服务器 - 用于构建我的文件的 Webpack。
我的项目结构如下:
我的应用程序/
webpack.server.js
webpack.client.js
server.js
client/client.js
客户端/app.js
客户端/组件/header.js
客户端/组件/mainLayout.js
客户端/组件/footer.js
页眉和页脚文件并不重要,所以我不在这里写。 重要文件如下:
mainLayout.js
import React, { Component } from 'react';
// import component
import Header from './header';
import Footer from './footer';
class MainLayout extends React.Component {
constructor (props) {
super(props)
}
render() {
return (
<div className="App">
<Header />
{this.props.children}
<Footer />
</div>
);
}
}
export default MainLayout;
app.js
import React, { Fragment } from 'react';
import { Route, Switch } from 'react-router-dom';
import MainLayout from './components/mainLayout'
const AppComponent = () =>
<Switch>
<Route path="/" exact render={props => (
<MainLayout>
<h1>Hello World</h1>
</MainLayout>
)} />
</Switch>
;
export default AppComponent;
client.js
import 'babel-polyfill';
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter} from 'react-router-dom';
import AppComponent from './app';
ReactDOM.hydrate(
<BrowserRouter>
<AppComponent />
</BrowserRouter>,
document.querySelector('#root')
);
server.js
import express from 'express';
import React from 'react';
import AppComponent from './client/app'
var app = express();
const PORT = 3000;
app.use("/", express.static("build/public"));
app.get("/", (req, res) => {
res.send(<AppComponent />)
});
app.listen(PORT, () => console.log('Now browse to localhost:3000'));
运行我的项目:
npm run build
npm run dev
但是当我要去http://localhost:3000 时,我的页面响应是 {"key":null,"ref":null,"props":{},"_owner":null,"_store":{}}。
我不明白为什么我有这个错误,有些东西可能让我逃跑了,但我不明白。
你能帮帮我吗?
提前谢谢你, 作为
【问题讨论】:
-
可能是因为 nodejs 和 react 在同一个端口上运行,我认为这是不可能的,或者你需要改变一些东西才能让它工作
标签: javascript node.js reactjs webpack web-applications