2012-05-04 3 views
7

Esiste un modo per eseguire il codice Dart su un server, in modo simile a come viene eseguito Node.js nell'interprete javascript o ruby? O è che al momento può funzionare solo in Dartium?Come eseguire Dart su un server?

+1

Vedi di una precedente domanda simile: http://stackoverflow.com/questions/10360855/running- dart-in-a-web-server –

+0

Sì, l'ho visto. Tuttavia, non ha ancora risposto alla domanda. Oppure, sembra che la risposta sia no, e il codice dardo può essere eseguito solo in Dartium, ma al momento non esiste una macchina virtuale autonoma. È così o non lo capisco correttamente? – snitko

+0

Controlla questo thread: [È disponibile un Dart VM?] (Http://stackoverflow.com/q/7714302/648313) – Idolon

risposta

9

La risposta è sì.

Ad esempio, il seguente file di Hello.dart:

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

quando eseguito con il comando (su Windows, ma anche disponibile per Mac, Linux)

dart.exe Hello.dart 

uscita volontà

"Hello World" 

È molto simile a node.js.

Inoltre, dal Dart Editor, è possibile fare clic su "Nuovo> Server App" e poi il "run" di comando funzionerà come l'esempio di cui sopra

Date un'occhiata a this file che gestisce un server HTTP dal comando linea.

Aggiornamento: ho scritto a blog post di questo ora, che dovrebbe dare un esempio, e il codice eseguibile

+1

URL corretto sul blog post: http://blog.dartwatch.com/2012/05/ there-have-been-number-of-posts-on.html – Helpa

+0

@Helpa - thanks - url aggiornato sulla risposta principale. –

2

Sì, è possibile eseguire applicazioni server-side scritte a Dart. Il progetto Dart fornisce uno dart:io library che contiene classi e interfacce per socket, server HTTP, file e directory.

Un buon esempio di un semplice server HTTP scritto in Dart: http://www.dartlang.org/articles/io/

codice di esempio:

#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(); 
    }; 
}