2012-04-28 26 views
8

¿Cómo ejecuto dart en un servidor? decir en localhost o cualquier servidor web? Actualmente, google proporciona un editor de dardos que ejecuta el código en el navegador de dartium. Además, incluso si tengo la posibilidad de ejecutarlo en un servidor, ¿sería visible para otros ver la página en un navegador que no sea dartium?Ejecutando dart en un servidor web

+0

Ver: [¿hay dardo virtual disponible?] (http://stackoverflow.com/q/7714302/648313) – Idolon

Respuesta

9

Cuando crea una nueva "Aplicación Web" usando el Editor de Dart, crea un archivo .html y un archivo .dart. El archivo HTML utiliza una etiqueta para vincular al archivo .dart, por ejemplo:

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

El editor también puede generar un archivo JavaScript desde el archivo .dart, por ejemplo:

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

Por lo que una al servidor web, estos son simplemente archivos estáticos que se sirven al navegador.

El archivo html contiene un enlace a un script especial de JavaScript que puede identificar si el navegador que se está utilizando tiene soporte nativo para Dart (es decir, Dartium).

  • Si lo hace, entonces se utiliza el par de archivos MyApp.html y MyApp.dart.

  • Si el navegador no es compatible con Dart de forma nativa, el script especial cambia dinámicamente el elemento del script para apuntar al archivo MyApp.dart.js, para que el navegador reciba la versión de JavaScript de su aplicación.

Esto significa que se puede copiar los tres archivos (html, .dart, .js) en cualquier servidor web (localhost o de otro tipo), y simplemente buscar el archivo .html.

Para completar, la "secuencia de comandos especiales" se puede ver aquí: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js

+0

Chris, ¿sería posible utilizar su JSON Dart Example http://www.dartlang.org/articles/json-web-service/ para ser servido por un Apache o lighthttpd o nginx WebServer? por cierto, ¿tienes todo el código completo como uno en alguna parte? ^^ – Gero

+0

Sí, eso funcionaría con cualquier servidor web que brinde servicios a través de POST y GET. Hay un código similar en este ejemplo que envía y recupera datos de un servidor web: https://github.com/chrisbu/dartwatch-blog-server/blob/master/client/blog.dart (la parte del servidor en esta instancia) también está escrito en dardo, pero no tiene que serlo) –

0

Dartium es solo un navegador Chromium con la habilidad de ejecutar directamente el dardo en un "dart vm". Esto acelera el proceso de desarrollo. La forma más común el uso de dardo en otros navegadores y en su servidor web es: compilar el dardo de código de JavaScript nativo :)

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

Frog es el compilador, que compila dardo de código Javascript a

+2

La pregunta era (como creo) en la forma de moverse de dardo lado del cliente (navegador) al lado del servidor –

+0

@ om-nom-nom yups. – gopi1410

+0

@senk: gracias por el compilador de ranas. no lo sabía – gopi1410

11

En realidad se puede ejecutar dardo como un servidor 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(); 
    }); 
    }); 
} 

que se inicia un servidor web en la máquina local usando puerto 8080. Simplemente devuelve "Hello, world".

A partir de ahí todo lo que necesita hacer es definir sus rutas, acciones, etc.

+1

¿Esto solo es bueno para el desarrollo o para la producción? – izolate

-1

Así es como me pongo Dardo en Google App Engine, es decir: el dardo que se ejecuta en el navegador/en el cliente lado:

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

+1

Es posible que desee editar esa respuesta, apunta a un blogpost que a su vez apunta al código de muestra. Eso es una redirección triple. Siéntase libre de hacerme un ping para un voto positivo cuando haya terminado :) – eckes