我已经阅读了不同的博客文章,了解如何使用React,Redux(在前端工作)与API endpoints 与ExpressJS服务器通信来建模和开发完整的应用程序 .

据我所知,我们需要:

a) . 一个expressJS应用程序使用所有可能的 endpoints (可用于API访问)开发 . 此应用程序应在端口上运行,例如7070.此服务器端应用程序将与数据库通信 . B) . 为前端开发基于React,Redux的应用程序,并在不同的端口上运行此应用程序,例如8080使用webpack,gulp或grunt服务器 .

I am sure this is not the only model. 或者,也许我的概念有点弱 . 但这篇文章将向全球所有Frontend fullstack开发人员阐明概念 . 请写下您的建议和专家意见如下:

  • 我定义的模型是对的吗?

  • 是否有办法或可能使用ExpressJS应用程序将ReactJS应用程序作为单页应用程序(在客户端处理和呈现所有已定义的React路由) .

/* a reference example of using root route handler in Express to throw an index file (which includes bundle.js react application), this works okay, but can not handle or render React Routes on client side; and instead if a menu link clicked that sends request to Express but Express application file only had '/' route to handle. */

app.get("/", function(req, res){ res.sendFile(dirname + "index.html"); // but this is not viable })

  • 如果第2点可以,那么我们的应用程序可以在同一个端口上运行吗?我们的应用程序也可以使用Express路由作为API endpoints . 但我相信这不会是推荐的方式,甚至不可能;除非我们做React的服务器端渲染(在我们的服务器端ExpressJS应用程序中) .

部署

Scenario: React Redux Express DB(mongoDb,Redis,MySql或Postgres等)Full Stack应用程序

  • Online/Cloud Hosting
    通常我们在任何第三方服务器(或 Cloud 服务器)上托管我们的应用程序 . 除非他们有NodeJS服务器,否则普通的共享主机不起作用 . 最常见的是:Heroku,AWS,RedHat OpenShift,Nodejitsu,Microsoft Azure,Modulus,Firebase等 . 在这种情况下,大多数服务器端的东西都易于设置且无头痛 .

  • Local Network (Internal Company/Corporate Server) Hosting
    一世) . Linux基础服务器(任何版本)安装SSL必需数据库安装NodeJS安装专用IP
    ⅱ) . Windows Bases服务器SSL已安装必需的数据库安装NodeJS安装专用IP

任何人都可以详细介绍内部服务器托管设置过程以及更详细的所有安全措施吗?我真的不知道应该采取的每一步是什么 .
如果任何技术人员也可以撰写有关应用程序建模的文章,那也会很有帮助 . 这将有助于每个人 .

注意:问题上下文中的答案应该很短(不在问题主题行上下文中,这是相当广泛的) . 任何参考或链接都可以很好地回答 .