Express React 路由器和中间件
Express React Router and Middleware
我有一个正在使用 express 和 React 的 server/website。我想使用 app.use(express.static())
为网站提供服务。这是我想要的工作方式,除了它会干扰处理 url /parse-dashboard
的单个服务器,它作为一个单独的中间件。
const path = require( 'path' )
var express = require('express');
var bodyParser = require('body-parser');
var basicAuth = require('express-basic-auth');
var ParseServer = require('parse-server').ParseServer;
var ParseDashboard = require('parse-dashboard');
var url = require('url');
var app = express();
var config = require( path.join( __dirname, 'config' ) )
app.use('/parse-dashboard', ParseDashboard(config.dashboard, true));
// Middleware for reading request body
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, './client/build')));
app.set( 'port', process.env.PORT || 3000 )
const server = require( 'http' ).createServer( app )
server.listen( app.get( 'port' ), () => {
console.log('express server listening on port ' + ( process.env.PORT || server.address().port ));
});
当我去 /parse-dashboard
时,React 应用程序(使用 react-router-dom
)采用 url 并显示空白路线。我怎样才能让服务器显示这条路线?
我想通了,天哪,我觉得自己很蠢。在我的服务器(Express)文件夹中包含的 React 应用程序文件夹中,我有一个 package.json
文件来声明 React 依赖项。 package.json
文件中仍然包含 proxy
密钥,一些指南提到使用该密钥以便在本地工作时获得对您自己的服务器的 api 调用。删除该密钥后,一切都按预期工作,/parse-dashboard
由 express 处理,其余由 react-router-dom
处理
我有一个正在使用 express 和 React 的 server/website。我想使用 app.use(express.static())
为网站提供服务。这是我想要的工作方式,除了它会干扰处理 url /parse-dashboard
的单个服务器,它作为一个单独的中间件。
const path = require( 'path' )
var express = require('express');
var bodyParser = require('body-parser');
var basicAuth = require('express-basic-auth');
var ParseServer = require('parse-server').ParseServer;
var ParseDashboard = require('parse-dashboard');
var url = require('url');
var app = express();
var config = require( path.join( __dirname, 'config' ) )
app.use('/parse-dashboard', ParseDashboard(config.dashboard, true));
// Middleware for reading request body
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, './client/build')));
app.set( 'port', process.env.PORT || 3000 )
const server = require( 'http' ).createServer( app )
server.listen( app.get( 'port' ), () => {
console.log('express server listening on port ' + ( process.env.PORT || server.address().port ));
});
当我去 /parse-dashboard
时,React 应用程序(使用 react-router-dom
)采用 url 并显示空白路线。我怎样才能让服务器显示这条路线?
我想通了,天哪,我觉得自己很蠢。在我的服务器(Express)文件夹中包含的 React 应用程序文件夹中,我有一个 package.json
文件来声明 React 依赖项。 package.json
文件中仍然包含 proxy
密钥,一些指南提到使用该密钥以便在本地工作时获得对您自己的服务器的 api 调用。删除该密钥后,一切都按预期工作,/parse-dashboard
由 express 处理,其余由 react-router-dom