Dart 用红石服务网页
我正在使用Dart和开发一个web应用程序 因为Dart允许服务器端和客户端开发,我想知道web应用程序的好模式是什么(特别是Dart) 备选案文1:Dart 用红石服务网页,dart,web-deployment,dart-polymer,redstone.dart,Dart,Web Deployment,Dart Polymer,Redstone.dart,我正在使用Dart和开发一个web应用程序 因为Dart允许服务器端和客户端开发,我想知道web应用程序的好模式是什么(特别是Dart) 备选案文1: 有一个服务器,比如说/bin/server.dart 1.1。在那里获取请求并用json响应 @app.Route(“/user/:id”,方法:const[app.GET]) getUser(int-id){…} 拥有一个客户端,即web/user.html和web/user.dart 2.1在user.dart中向服务器发出请求 2.2接收
@app.Route(“/user/:id”,方法:const[app.GET])
getUser(int-id){…}
@app.Route(“/”)
helloWorld()=>“你好,世界!”;
如果在第一种情况下,我或多或少知道(并理解)如何让事情顺利进行,而我发现没有利用Dart的服务器-客户机代码共享确实令人沮丧:我需要对json进行编码和解码以获得相同的数据。有办法避免吗
第二个选择对我来说不太清楚:我如何以这种方式为网页服务?我如何使聚合物发挥作用
非常感谢您回答本文中的问题,并对开发web应用的快速方法进行一般性解释。我认为选项2不可能。Polymer依赖于服务器端不允许的dart:html。您可以在此处看到Redstone+Polymer应用程序示例: 基本上,它的工作方式是
选项1
:客户端和服务器通过服务API进行通信,数据编码为JSON。尽管如此,Redstone还是使用shelf_static
包为浏览器提供客户端代码
如果您愿意,也可以使用服务器端模板引擎(如mustache)在服务器中构建html页面,不过,我认为将其与Polymer集成是非常困难的
最后,在客户机和服务器之间传输数据时,您必须始终以某种方式对数据进行编码,但这并不意味着它们不能共享代码。例如,它们可以使用相同的域类。查看上面链接的示例应用程序以了解更多详细信息