2012-05-04 40 views
7

¿Hay alguna manera de ejecutar el código de Dart en un servidor, similar a cómo Node.js ejecuta javascript o el intérprete de ruby ​​ejecuta el código de ruby? ¿O es que actualmente solo se puede ejecutar en Dartium?¿Cómo ejecutar Dart en un servidor?

+1

Ver una pregunta similar anterior: http://stackoverflow.com/questions/10360855/running- dart-in-a-web-server –

+0

Sí, lo he visto. Sin embargo, todavía no respondió la pregunta. O bien, parece que la respuesta es no, y el código del dardo solo se puede ejecutar en Dartium, pero no hay una máquina virtual independiente para usar en este momento. ¿Es eso o no lo estoy entendiendo correctamente? – snitko

+0

Compruebe este hilo: [¿Hay Dart VM disponible?] (Http://stackoverflow.com/q/7714302/648313) – Idolon

Respuesta

9

La respuesta es sí.

Por ejemplo, la siguiente Hello.dart archivo:

main() => print("Hello World"); 

cuando se ejecuta con el comando (en las ventanas, pero también disponible para Mac, Linux)

dart.exe Hello.dart 

es la salida

"Hello World" 

Es muy parecido a node.js.

Asimismo, desde el Editor de Dart, puede hacer clic en "Nuevo> Servidor de Aplicación" y luego la opción "Ejecutar" comando funcionará como el ejemplo anterior

Tome un vistazo a this file que se ejecuta un servidor HTTP desde el comando línea.

actualización: He escrito a blog post de esto ahora, que debe dar un ejemplo, y el código ejecutable

+1

URL correcta del cubo en la publicación del blog: http://blog.dartwatch.com/2012/05/ there-have-been-number-of-posts-on.html – Helpa

+0

@Helpa - gracias - url actualizado en la respuesta principal. –

2

Sí, puede ejecutar aplicaciones de servidor escrito en Dart. El proyecto Dart proporciona un dart:io library que contiene clases e interfaces para sockets, servidores HTTP, archivos y directorios.

Un buen ejemplo de un simple servidor HTTP escrito en Dart: http://www.dartlang.org/articles/io/

Código de ejemplo:

#import('dart:io'); 

main() { 
    var server = new HttpServer(); 
    server.listen('127.0.0.1', 8080); 
    server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { 
    response.outputStream.write('Hello, world'.charCodes()); 
    response.outputStream.close(); 
    }; 
} 
Cuestiones relacionadas