在我的项目中,我需要一个管理员应用程序。我偶然发现了管理员反应。看来它确实满足了我的需要。我已经检查了他们的tutorial。作了一些草稿,并使其运行(按照教程进行)。
但是,我有一个Express应用程序,该应用程序已经具有路由和API,并且还有一个Express应用程序提供的React应用程序。我想改用Admin-React,换句话说,删除现有的React应用程序,并开始将React-Admin一个自定义为静态资源。简而言之,我现有的Express应用程序应该为React-Admin服务,并向其公开现有的API。
看着这些教程,我没有找到如何做的信息。它具有纱线启动功能,并开始在端口3000上运行。
我在这里似乎缺少一些基本的东西。 有这种设置的例子吗?
这是我的Express.js,已经通过公用文件夹为React应用程序(而非React Admin)提供服务。
'use strict';
/* jshint camelcase:false */
require('dotenv').config();
if (process.env.NODE_ENV === undefined) {
throw new Error('No environment variable was set. For development use [export NODE_ENV=dev].');
}
let express = require('express');
var favicon = require('serve-favicon');
let path = require('path');
let cookieParser = require('cookie-parser');
let bodyParser = require('body-parser');
let expressValidator = require('express-validator');
let configuration = require('./app/Configuration');
let app = configuration.getApp();
let config = configuration.getParameters();
let errorHandler = require('./src/Error/Handler');
let session = require('client-sessions');
app.use(require('./src/Twig/ExtendWithCustomFunctions').extend());
app.use(session({
cookieName: 'session',
secret: 'xxxxxxx',
duration: 12 * 60 * 60 * 1000,
activeDuration: 2 * 60 * 60 * 1000
}));
app.use(bodyParser.json());
app.use(errorHandler.bodyParser);
app.use(expressValidator());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(favicon(__dirname + '/public/favicon.ico'));
configuration.setErrorHandler(errorHandler);
configuration.initializeControllers(__dirname);
configuration.initializeErrorHandling();
module.exports = app;
答案 0 :(得分:2)
从Express端点提供React Admin的唯一方法是先构建它。
如果您按照本教程操作,则应该已经运行了create-react-app
应用程序,因此可以运行以下命令来捆绑您的应用程序:
npm run build
# or
yarn build
您的捆绑包文件将位于static
文件夹下。
然后,您可以将这些文件移动到子文件夹中的Express应用程序中,并可以在其中使用express.static
进行提供。
有关create-react-app构建和部署的更多信息:https://facebook.github.io/create-react-app/docs/deployment
甚至还有一个有关如何服务于构建的示例:https://facebook.github.io/create-react-app/docs/deployment#other-solutions