Haxe Code Cookbook
Haxe programming cookbookJavaScriptCreate a server with Haxe/NodeJS

Create a server with Haxe/NodeJS

Reading time: 1 minute

The following tutorial creates a http server using Haxe/Node.js at port 8000 and demonstrates how to build and run it.

Haxe can compile to many targets, this example is specific for the Haxe/JavaScript target only.

Installation

  • Install Node.js on your machine.
  • Install hxnodejs with haxelib install hxnodejs (released version).
  • .. or install the latest version from github haxelib git hxnodejs https://github.com/HaxeFoundation/hxnodejs.

Structure of this example

+ example/ - Main.hx - build.hxml - run.hxml

Main.hx

 class Main {  static function main() {  // Configure our HTTP server to respond with Hello World to all requests.  var server = js.node.Http.createServer(function(request, response) {  response.writeHead(200, {"Content-Type": "text/plain"});  response.end("Hello World\n");  });  // Listen on port 8000, IP defaults to 127.0.0.1  server.listen(8000);  // Put a console.log on the terminal  trace("Server running at 127.0.0.1:8000");  } } 

Note that each Haxe application has a static entrypoint which is called main().

Compile the Haxe/node.js server

Compile the example with haxe -lib hxnodejs -main Main -js main.js. You can also save this build configuration in a build.hxml file:

 -lib hxnodejs  -main Main  -js main.js 

To run the build.hxml script, it can be passed to the Haxe compiler on the commandline: haxe build.hxml. Windows users can double click the hxml file to run it.

Run the Haxe/node.js server

To run the node application, use node main.js. Alternative, you can save this configuration in a run.hxml file.

 -cmd node main.js 

Then, load http://127.0.0.1:8000/ in a browser to see the server output.

Generated output

Haxe is an excellent JavaScript compiler, the output source is clean:

 (function () { "use strict"; var Main = function() { }; Main.main = function() {  var server = js_node_Http.createServer(function(request,response) {  response.writeHead(200,{ "Content-Type" : "text/plain"});  response.end("Hello World\n");  });  server.listen(8000);  console.log("Server running at 127.0.0.1:8000"); }; var js_node_Http = require("http"); Main.main(); })(); 

Related info:


Contributors:
Last modified:
Created:
Category:  JavaScript