node.js - 如何使用Nginx通过express router加载页面

标签 node.js reactjs express nginx

所以我正在构建一个端到端应用程序(使用node.js/mysql后端、react前端并使用express路由器),但我在设置本地开发服务器时遇到了麻烦。我不需要从外界访问它,只需能够加载连接到快速路由器的不同页面即可。我对此没有任何开发操作经验,所以我尝试使用 nginx 将其指向我无法弄清楚的路由器。有没有更简单的方法来做到这一点?

我还需要在 Windows 计算机上运行它,这只会让一切变得稍微复杂

最佳答案

从您的描述中并不完全清楚您的应用程序是如何设置的以及 Nginx 的作用是什么。

所以我会从头开始......

Nginx 主要是一个 HTTP 服务器,也可以充当 HTTP 请求的代理。如果您使用 Express 编写了 Node.js 应用程序,那么您已经编写了一个 HTTP 服务器,它可以处理您设置的任何路由,还可以为您的静态资源(即 HTML 页面、图像、前端 Javascript、CSS 等)提供服务。在这种情况下,不需要 Nginx - 如果您写了类似 the Express "Hello World" app 的内容,然后您将看到类似“示例应用程序正在端口 3000 上监听”的消息,您可以通过在浏览器中访问 http://localhost:3000 连接到您的应用程序。

就是这样 - 您的应用程序实际上没有其他任何东西,并且不需要 Nginx(或任何其他 HTTP 服务器)来运行您的应用程序。

这并不是说 Nginx 在您的应用程序中没有作用,但它可能不作为 HTTP 服务器。一种可能性是您可能希望将 Nginx 设置为代理,通过将请求发送到 Node 应用程序来处理某些路由。例如,我前段时间设置了一个应用程序,它使用 Nginx 将我的应用程序的 API 路由代理到 Node 应用程序,并直接提供静态 Assets 。这可能就是您的想法 - 如果是这样,您将需要在 Nginx 中配置不同的路由来提供不同的服务(不幸的是,您的问题中没有足够的信息来对此提供建议)。

顺便说一句,您可能会发现使用 Linux 进行设置要容易得多 - 也许是 Windows Linux 子系统、运行 Linux 的虚拟机或 Docker。

关于node.js - 如何使用Nginx通过express router加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52573979/

相关文章:

javascript - 如何对我的特定 API 调用示例执行 try/catch?

node.js - 如何获取对模块中先前 fork 进程的引用?

javascript - JISON 解析命令时出现问题

javascript - React - 具有输入的可拖动组件在单击该输入时失去焦点的能力

angularjs - Stormpath 不允许我在登录时访问路线

node.js - Node JS 查询 request.query 为空

reactjs - 如何导出函数和导入 react 钩子(Hook)

reactjs - 如何水平展开 Reactstrap Collapse 组件?

javascript - 插入违反唯一索引的 MongoDB 文档时如何捕获错误?

jquery - 使用 jquery 提交表单时 Node.js 挂起