在MEAN Stack App中重新加载页面后无法获取/ page

时间:2018-06-24 15:36:49

标签: node.js mean

我已使用自定义域将MEAN Stack项目推送到Heroku。当我尝试检查每条路线时,一切运行良好。但是,当我重新加载页面或使用该路由的URL访问某个页面时,它会返回:

  

无法获取/ page

如何发生?以及如何解决?谢谢。

如果需要,这是我的app.js文件:

const express   = require('express');
const path      = require('path');
const bodyParser= require('body-parser');
const passport  = require('passport');
const mongoose  = require('mongoose');
const config    = require('./config/database');
const port      = process.env.PORT || 8080;
const cors      = require('cors');
const app       = express();
const users     = require('./routes/users');
const companies = require('./routes/companies');
const reports   = require('./routes/reports');

app.use(cors());

mongoose.connect(config.database);

mongoose.connection.on('connected', ()=>{
    console.log('Connected to ' +config.database);
});

mongoose.connection.on('error', (err)=>{
    console.log('Unable to Connect ' +config.database);
});

app.use(express.static(path.join(__dirname,'public')));

app.use(bodyParser.json());

app.use(passport.initialize());
app.use(passport.session());
require('./config/passport')(passport);

app.use('/reports', reports);
app.use('/companies', companies);
app.use('/users', users);
app.get('/',(req, res)=>{
    res.send('Index Page');
});


app.listen(port, () => {
    console.log('Server Running on Port : '+port)
}); 

2 个答案:

答案 0 :(得分:2)

因此,假设这是SPA,则很可能您的客户端路由在服务器上不存在,这是有意为之,并且是创建SPA(不刷新页面)的主要好处之一。但是,结果是存在一个问题,如果您在这些路由之一上刷新时,服务器将因为路由不匹配而失败。

要解决此问题,您需要确保为客户端应用提供服务的路由始终为应用提供服务(当然,不包括任何现有的服务器URL)。明确地说,这可以通过在网址格式中使用通配符参数来实现,即

app.get('/*', (req, res) => res.send('Index Page'));

这将匹配根URL中与先前配置的URL不匹配的任何路径-因此,在您的示例中,如果您在/page上刷新,则应呈现应用。

答案 1 :(得分:0)

您设置了路由器,请尝试以下操作,然后再次将提交推送到heroku。

df = pd.DataFrame(list(map(Counter, doc_clean)))