67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Haxe Node.JS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://travis-ci.org/HaxeFoundation/hxnodejs)
							 | 
						||
| 
								 | 
							
								[](https://lib.haxe.org/p/hxnodejs)
							 | 
						||
| 
								 | 
							
								[](https://lib.haxe.org/p/hxnodejs)
							 | 
						||
| 
								 | 
							
								[](LICENSE.md)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Extern type definitions for Node.JS. Haxe **3.4** or newer is required.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Haxe-generated API documentation is available at http://haxefoundation.github.io/hxnodejs/js/Node.html.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Original node.js documentation can be found at http://nodejs.org/api/index.html.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Features
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 - Full node.js API with documentation.
							 | 
						||
| 
								 | 
							
								 - Strict typing for everything, fully leveraging Haxe type system.
							 | 
						||
| 
								 | 
							
								 - Optionally typed event listeners.
							 | 
						||
| 
								 | 
							
								 - Automatic insert of "require" statements for used modules.
							 | 
						||
| 
								 | 
							
								 - Clean output.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Quick example
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. Install hxnodejs with `haxelib install hxnodejs` (released version) or `haxelib git hxnodejs https://github.com/HaxeFoundation/hxnodejs` (latest from GitHub).
							 | 
						||
| 
								 | 
							
								2. Write some code and save to `Main.hx`:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ```haxe
							 | 
						||
| 
								 | 
							
								    class Main {
							 | 
						||
| 
								 | 
							
								        static function main() {
							 | 
						||
| 
								 | 
							
								            var server = js.node.Net.createServer(function(socket) {
							 | 
						||
| 
								 | 
							
								                socket.write("Echo server\n\n");
							 | 
						||
| 
								 | 
							
								                socket.pipe(socket);
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								            server.listen(1337, "127.0.0.1");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    ```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								3. Compile it with with `haxe -lib hxnodejs -main Main -js main.js` (optionally add `-D js-es=6` for cleaner JavaScript output, since node.js is ES6-compliant)
							 | 
						||
| 
								 | 
							
								4. Look at generated `main.js`:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ```js
							 | 
						||
| 
								 | 
							
								    // Generated by Haxe 4.0.0-rc.2+63144f6db
							 | 
						||
| 
								 | 
							
								    (function ($global) { "use strict";
							 | 
						||
| 
								 | 
							
								    class Main {
							 | 
						||
| 
								 | 
							
								        static main() {
							 | 
						||
| 
								 | 
							
								            var server = js_node_Net.createServer(function(socket) {
							 | 
						||
| 
								 | 
							
								                socket.write("Echo server\n\n");
							 | 
						||
| 
								 | 
							
								                socket.pipe(socket);
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								            server.listen(1337,"127.0.0.1");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    var js_node_Net = require("net");
							 | 
						||
| 
								 | 
							
								    Main.main();
							 | 
						||
| 
								 | 
							
								    })({});
							 | 
						||
| 
								 | 
							
								    ```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								5. You're awesome! (See more [examples](examples))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Status
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This library is considered complete, but testing and contributions are welcome. See [current issues](https://github.com/HaxeFoundation/hxnodejs/issues) and [extern guidelines](https://github.com/HaxeFoundation/hxnodejs/blob/master/HOWTO.md).
							 | 
						||
| 
								 | 
							
								
							 |