可以将Angular 2 Dart前端与Node.js后端一起使用吗?

问题描述 投票:0回答:1

我正在计划将在Web应用程序中使用的工具。 我想将Node.js用作服务器后端,因为它具有一个对我特别有用的模块。 但是,我也想在前端使用Angular 2(Dart)和Polymer.dart。 请问答案是否显而易见,但是由于Dart与JS不直接兼容,因此如何无缝结合我的应用程序的这两个部分(没有转换工具)如何工作(就像在MEAN堆栈中那样)?

当前没有任何教程或资源可以证明这种组合。 在我看来,更常见的用例是让Dart也充当服务器后端。

angularjs node.js dart dart-polymer angular-dart
1个回答
2
投票

如何为Dart客户端应用程序提供服务

客户端和服务器可以是两个完全不绑定的不同应用程序。 唯一需要的连接是,服务器可以解释客户端发送的请求,客户端可以解释响应。

内置的Dart客户端应用程序就像静态HTML一样,可以由任何HTTP服务器提供服务。 我不知道Node.js,但是我假设它有一个目录,用于提供静态内容。 在此放置Dart客户端应用程序的生成输出。

Dart客户端和Node.js服务器之间的通信

为了使客户端和服务器能够通信,Dart需要以服务器期望的形式发送请求。 您可以将REST,WebSocket,Ajax与JSON主体或协议缓冲区一起使用。 在客户端和服务器上使用相同语言的优点是,可以在客户端和服务器之间共享从有线协议格式序列化或从有线协议格式反序列化的模型类,并且可以在客户端和服务器之间共享序列化/反序列化代码。 在这种情况下是不可能的。 Dart小组正在努力从Dart生成JS和TS,最终可能会解决此问题。 如果您使用协议缓冲区,这也将不适用,因为您可以从相同的原始文件生成两种语言的代码。

发展要求

对于开发,您必须考虑“需要”两台服务器。 Node.js服务器既是应用程序的实际服务器,又是pub serve服务器,用于快速更改和重新加载周期(以避免每次更改后构建为JS)。 这通常由代理完成(例如,可以是Nginx,也可以是使用shelf和shelf_proxy包的自定义Dart脚本),该代理将对Dart源文件的请求转发到pub serve并将Rest / Ajax / WebSocket请求发送到Node.js服务器。

© www.soinside.com 2019 - 2024. All rights reserved.