如何在Heroku上部署reactJS + nodeJS应用程序?

时间:2018-11-15 11:26:20

标签: node.js reactjs heroku

我在将应用程序部署到heroku时遇到问题。我在内置文件夹中有react app的输出(路径:/client/build/index.html)

server.js

<ul class="nav flex-column" id="menu">

Procfile

const express = require('express');
const path = require('path');

const cors = require('cors');
const passport = require('passport');

app.use(express.static(path.resolve(__dirname + '/client/build')));

app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname+'/client/build/index.html'));
});
const port = process.env.PORT || 5000;

const bodyParser = require('body-parser');
const mongoose = require('mongoose');

app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

app.use(cors())
mongoose.connect(process.env.MONGODB_URI)
    .then(() => console.log("success"))
    .catch(err => console.log(err))
app.use(passport.initialize());
require('./config/passport')(passport);


const server = app.listen(port,  function(err) {
  if (err) {
    return;
  } 
  console.log('server listening on port: %s', port);
});

package.json(服务器)      {

web: node server.js

可以从构建文件夹中显示我的reactApp吗?如何部署服务器?在Procfile中放置命令是否足够?还是应该在package.json中添加“ heroku-postbuild”?感谢您的帮助

PS。推送到heroku后,我得到了这个index.html文件,但是空白页和服务器无法正常工作。

1 个答案:

答案 0 :(得分:0)

server.js中,您的app对象没有在app = express()中定义