首页 > 解决方案 > 带有 Node API 的 Vue 应用程序:项目结构

问题描述

在我的第一篇文章中,我想征求您对 Vue App with an Node using API 的意见。

对于一个小项目,我在两个文件夹中进行本地工作:-客户端(VueJs)-服务器(节点)

并使用 npm 单独运行它们: - npm run dev - npm run watch

到现在为止,一切都很好,因为我可以开发我的应用程序......但是关于部署,我有点迷茫。

对于 VueJs 方面,我使用以下命令构建我的生产应用程序: npm run build 我的应用程序已在 client/dist 中创建

对于我的服务器,我可以使用 Forever、Nodemon 或任何东西......

但是,这是我的问题:如何在同一个实例中部署两者?

到目前为止,我虽然可以在构建它的同时将我的 dist 文件夹移动到服务器端。

但我想将它们分开,使用两个不同的端口:一个用于 api,一个用于客户端。

由于我一个人学习,我不知道最佳实践,任何提示将不胜感激。

(顺便说一句,我正在尝试将它部署在 Google Cloud Instance 上,但我也迷路了)

感谢您阅读

标签: node.jsvue.jsgoogle-cloud-platform

解决方案


最重要的是,您不能将前端和后端部署在不同的端口上并期望它们相互通信。浏览器安全模型将启动并阻止客户端返回。

也就是说,只要它们在同一个域上结束,您就可以单独部署(尽管它们可能是不同的子域,例如 www.example.com 和 api.example.com)。

这在一定程度上取决于您使用的谷歌云资源,但一个常见的版本是拥有一个来自谷歌云计算的虚拟机,您将客户端和服务器都推送到该虚拟机,然后为两者设置一个网络服务器,例如 NGINX在一个路径或子域上提供客户端文件,并通过不同的路径或子域充当您的 api 的反向代理。这是一个非常有据可查的方法/架构。


推荐阅读