我正在创建我的第一个应用程序节点快速应用程序,该应用程序的前端使用的角度为7,以便在生产中部署。我有以下问题吗?
首选哪种文件夹结构,我应该单独创建吗? 节点和角项目或相同项目(根目录中的server.js 角项目和服务器文件夹的创建快速服务器 文件)?首选的是什么,我必须签入项目 在svn的一个文件夹中。
我应该使用babel并通过es2015创建节点服务器代码还是 继续使用旧方法吗?
答案 0 :(得分:0)
这完全取决于您,我正在做的是我有单独的Angular和Node projet目录
project
|
client - Your anguar project
server - Your Apis and server side coding (Only this folder require at productino level)
然后,我们可以创建一个gulp文件和任务来gulp构建我的客户端 项目,并将该构建文件夹放入
server -> public
现在只有服务器可用于将Build呈现为静态的生产环境。
在身份验证和身份验证过程旁边,您可以遵循基于JWT的权限。
答案 1 :(得分:0)
通常我想说,将客户端和服务器代码分成单独的项目是可取的,这样一来,当您对一个或另一个进行更改时,不必同时释放客户端和服务器。我剩下的答案是基于这样的假设,即您将双方分为不同的项目。
就构造基于服务器端Express的应用程序而言,请查阅this link,以获取有关如何处理您的情况的一些指导。请参阅第一个问题的答案,即关于如何针对不同的部署方案构造Express应用程序的不同方法。另外,如果您使用最新的LTS版本的node,则无需使用编译器将文件转换为Javascript,因为Node环境将为您处理该问题。
关于构建客户端基于Angular的应用程序,请查看this link,以获取有关构建Angular应用程序的最佳实践的非常详细的讨论。
答案 2 :(得分:0)
我宁愿遵循,以防将来您需要将API层与客户端分开,您可以轻松做到这一点,
__id.forEach(fn.bind({/*this*/}, ...args))
这将帮助您灵活地进行客户端和服务器集成,而无需紧密耦合。易于维护和调试。
答案 3 :(得分:0)
答案1:您应该为前端和后端创建两个单独的文件夹/存储库结构。
让我们假设您的应用程序那时增长迅速,您想要扩展后端,并且希望使用Amazon-S3将Angular应用程序托管为静态Web应用程序,那么在那时这将非常容易管理。
也许您想使用CICD,在这种情况下,最好使用单独的文件夹,以便您可以为后端和前端创建单独的CICD作业。
可能是您的公司雇用了一些开发人员,这些开发人员要么只是前端专家,要么只是后端专家。在这种情况下,您的公司不想给他们不必要的代码访问权限。因此,在这种情况下,单独的回购将是一个简单的选择。 (这可能取决于您的团队和公司的开发方法)
答案2:我建议您使用es6或es6 +功能。
最新的node.js版本支持es6的某些功能。例如 -点差算子 -破坏 -类(可以使用OOP) -箭头功能 -让,const -异步等待等等
如果node.js不支持任何其他功能,则可以使用babel。可能有使用babel的原因,但是我想知道您想与babel一起使用哪个特定功能?所以我可以据此解释。
答案 4 :(得分:0)
我使用以下方法将Angular Application和Node服务器绑定为一个单元。
server.js
文件,并将其配置为在dist/
路由上呈现/
文件夹的内容。 您可以引用服务器代码的链接:https://github.com/nikhilbaby/node-server
我通常使用ng build && node server
运行项目。这将确保首先构建角度应用程序,然后再启动该节点服务器。