【发布时间】:2018-03-26 12:00:37
【问题描述】:
我制作了一个简单的 create-react-app 应用程序和一个 node.js express 服务器端。 在本地这可以工作(服务器服务于 ui 并做 api)但是在部署到 heroku 时 仅提供 UI(任何 API 调用都会获得 503 代码)
App.js
// Routes
// works both locally and on heroku
app.get('/ui', (req, res) => {
res.sendFile(path.resolve(__dirname,'build','index.html'));
});
// works only locally
app.use('/users',users);
app.use('/pledge',pledge);
反应路由器
<ThemeProvider theme={theme}>
<div>
<Router history={history}>
<div>
<Route path={'/ui/'} component={Header}/>
<Route exact={true} path='/ui/welcome' component={Welcome}/>
<Route exact={true} path="/ui/login" component={Login}/>
<Route exact={true} path="/ui/help" component={Help}/>
<Route exact={true} path="/ui/dashboard" component={DashBoard}/>
<Route exact={true} path='/ui/logout' component={Logout}/>
<Route exact={true} path='/ui/pledge' component={Pledge}/>
<Route exact={true} path='/ui/buckets' component={Bucket}/>
<Route exact={true} path='/ui/add' component={AddStuff}/>
<Route exact={true} path='/ui/motion' component={MotionInput}/>
<Route exact={true} path='/ui/status' component={Status}/>
</div>
</Router>
</div>
</ThemeProvider>
没有服务器端渲染。 API 示例:
app.post('/usersAdd',(req, res) => {
let newUser = new User(req.body);
newUser.save((err) => {
if (err)
return res.send(500, {error: err});
return res.send("successfully saved");
});
});
API 调用
export function getUsers() {
return new Promise((resolve, reject) => {
axios.get(serverProps.server + serverProps.getUsers, {
headers: {
'Access-Control-Allow-Origin': '*'
}
})
.then(resolve)
.catch(reject);
});
}
【问题讨论】:
-
你用的是快递吗?
-
是的,我是。需要其他代码吗?
标签: javascript node.js reactjs express heroku