最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

节点服务器响应是添加了全部内容以允许react

运维笔记admin9浏览0评论

节点服务器响应是添加了全部内容以允许react

节点服务器响应是添加了全部内容以允许react

我已经开发了一个节点后端,对前端Web应用程序反应了几个月。当我通过nodemon和npm start来启动服务器时,它的工作正常。但是现在我已经准备好托管Alpha版本并运行“ npm run build”,我遇到了很多问题。

它似乎源于从服务器端口和react-router访问应用程序的交互。我向服务器添加了一个包罗万象的端点app.get('/ *'...),以允许react-router工作。因此,现在当前台请求数据时,响应是HTML而不是我想要的数组。

我觉得有一个简单的解决方案,但是我还没有看到。我考虑使用HashRouter而不是BrowserRouter,但是不幸的是我不能使用它,因为我使用MSAL Active Directory登录。

server / index.js

const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors')
require('dotenv').config();
const massive = require('massive');
const session = require("express-session");
const morgan = require('morgan');
const path = require('path');
const ctrl = require(`./controllers/controller.js`);

//Middleware
const app = express();
app.use(bodyParser.json());
app.use(cors());
app.use(express.static(__dirname + './../build'));
app.use(morgan('dev'));

//Connection to Azure DB
massive(process.env.CONNECTION_STRING)
.then(db => {
    console.log('Connected to Azure PostgreSQL Database')
    app.set('db', db)
}).catch(err=>console.log(err))

app.use(session({
    secret: process.env.SESSION_SECRET, 
    cookie: { maxAge: 60000 },
    resave: false,
    saveUninitialized: true
   })); 
 
//Endpoints
app.get('/*', function(req, res) {
    res.sendFile(path.join(__dirname, './../build/index.html'), function(err) {
      if (err) {
        res.status(500).send(err)
      }
    })
  })

app.get('/getallemployees/', ctrl.getAllEmployees)

app.listen(8080, () => console.log(`Listening on ${8080}`));
回答如下:

将所有捕获的端点置于所有其他返回数据的端点之后。

发布评论

评论列表(0)

  1. 暂无评论