【问题标题】:Running dart in a web server在 Web 服务器中运行 dart
【发布时间】:2012-04-28 05:22:18
【问题描述】:

如何在服务器中运行dart?在本地主机或任​​何网络服务器中说?目前 google 提供了一个 dart 编辑器,它在 dartium 浏览器中执行代码。此外,即使我在服务器上运行它,其他人在 dartium 以外的浏览器中查看页面时是否可以看到它?

【问题讨论】:

标签: dart dartium


【解决方案1】:

您实际上可以将 Dart 作为 Web 服务器运行:

import 'dart:io';

main() {
  HttpServer.bind('127.0.0.1', 8080).then((server) {
    server.listen((HttpRequest request) {
      request.response.write('Hello, world');
      request.response.close();
    });
  });
}

这会在本地机器上使用 8080 端口启动一个 Web 服务器。它只返回“Hello, world”。

从那里您需要做的就是定义您的路线、操作等。

【讨论】:

    【解决方案2】:

    当您使用 Dart 编辑器创建一个新的“Web 应用程序”时,它会创建一个 .html 文件和一个 .dart 文件。 html文件使用标签链接到.dart文件,例如:

    MyApp.html //contains <script type="application/dart" src="MyApp.dart"></script>
    MyApp.dart //contains dart app code.
    

    编辑器也可以从.dart文件生成javascript文件,例如:

    MyApp.dart.js //contains dart app code converted to JS
    

    就网络服务器而言,这些只是提供给浏览器的静态文件。

    该 html 文件包含一个指向特殊 JavaScript 脚本的链接,该脚本可以识别正在使用的浏览器是否具有对 Dart(即 Dartium)的本机支持。

    • 如果是,则使用 MyApp.html 和 MyApp.dart 文件对。

    • 如果浏览器本身不支持 Dart,则特殊脚本会动态更改脚本元素以改为指向 MyApp.dart.js 文件,以便浏览器接收您应用的 javascript 版本。

    这意味着您可以将这三个文件(.html、.dart、.js)复制到任何 Web 服务器(localhost 或其他),然后只需浏览到 .html 文件。

    为了完整起见,“特殊脚本”可以在这里查看: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js

    【讨论】:

    • 克里斯,是否可以使用您的 JSON Dart 示例 dartlang.org/articles/json-web-service 由 Apache 或 lighthttpd 或 nginx WebServer 提供服务?顺便说一句,你在某个地方有完整的代码吗? ^^
    • 是的,它适用于任何通过 POST 和 GET 提供服务的 Web 服务器。此示例中有类似的代码从 Web 服务器发送和检索数据:github.com/chrisbu/dartwatch-blog-server/blob/master/client/…(此实例中的服务器部分也是用 dart 编写的,但不是必须的)
    【解决方案3】:

    Dartium 只是一个 Chromium 浏览器,可以直接在“dart vm”中运行 dart。这加速了开发过程。在其他浏览器和网络服务器上使用 dart 的常用方法是:将 dart 代码编译为本机 javascript :)

    http://www.dartlang.org/docs/getting-started/sdk/#frog

    Frog 是编译器,将 dart-code 编译成 javascript

    【讨论】:

    • 问题是(我认为)如何将飞镖从客户端(浏览器)移动到服务器端
    【解决方案4】:

    这就是我把 Dart 放到 Google App Engine 上的方式,也就是:运行在浏览器/客户端的 Dart:

    http://ambio-strong.blogspot.no/2012/07/dart-on-google-app-engine.html

    【讨论】:

    • 您可能想要编辑该答案,它指向一个博客文章,该博客文章本身指向示例代码。那是三重重定向。完成后,请随时对我投赞成票:)
    猜你喜欢
    • 2014-08-31
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多