【发布时间】:2020-10-25 13:32:32
【问题描述】:
我已经使用 reactjs 创建了我的应用程序的前端。它包含三个组件 Home、Signin 和 Signup。在使用npm run build 构建前端之后,我使用 nodejs 创建了后端。在后端我使用了app.use(express.statis(path_to_build_directory_in_reactjs))。当我转到http://127.0.0.1:9000/ 时,它会显示主页。但是当我转到http://127.0.0.1:9000/signin 页面时,它显示can not get /signin。在构建 reactjs 之前,它显示的是登录页面,但添加后端后,它只显示主页。
Nodejs
onst express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static(path.join(__dirname, '../frontend/build')))
app.use(express.json());
app.post('/timeline',(req,res)=>
{
console.log(req.body);
res.end();
})
app.listen(9000,()=>
{
console.log(9000);
})
Reactjs
import React from 'react';
import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';
import Home from './pages/Home.js';
import Signin from './pages/Signin.js';
import Signup from './pages/Signup.js';
import Help from './pages/Help';
import Timeline from './pages/Timeline.js';
function App() {
return (
<div>
<Router>
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route exact path="/signin">
<Signin />
</Route>
<Route exact path="/signup">
<Signup />
</Route>
<Route exact path="/help">
<Help />
</Route>
<Route exact path="/timeline">
<Timeline />
</Route>
</Switch>
</Router>
</div>
);
}
export default App;
【问题讨论】:
-
尝试添加`app.all("*", (req, res) => { return handle(req, res); });`
-
@Sodhisaab 它说
handle()未定义。
标签: javascript node.js reactjs frontend backend