$ node
$ node
$ cat hello-world.js console.log("hello fellas!"); $ node hello-world.js hello fellas! $
$result = mysql_query("SELECT * FROM table"); /* ... process blocked until query returns ... */ if (!$result) { die("no result"); } while ($row = mysql_fetch_assoc($result)) { /* iterate over result */ }
db.query("SELECT * FROM table", callback); /* non-blocking: program continues immediately, callback is executed once query is finished. */ var callback = function (result) { for (var i in result) { /* iterate over result */ } };
var fs = require('fs'); fs.readFile("/etc/passwd", function (err, data) { if (err) throw err; console.log(data); });
var http = require("http"); http.get("http://uni-ulm.de", function(res) { console.log("Got response: " + res.statusCode); }).on('error', function(e) { console.log("Got error: " + e.message); });
$ cat socket-example.js var net = require("net"); var s = net.createServer(); s.addListener("connection", function (socket) { socket.write("hello, stranger!\n"); socket.end(); }); s.listen(1337);
$ node socket-example.js & $ telnet localhost 1337 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. hello, stranger! Connection closed by foreign host. $
$ cd someProject/ $ ls someProject.js package.json $ npm publish
$ npm install someProject ...
$ cat package.json { "author": "Michael Müller", "homepage": "https://github.com/cmichi/twitterwall", "repository": { "type": "git", "url": "https://github.com/cmichi/twitterwall.git" }, "name": "twitterwall", "description": "Display topic-related tweets in realtime.", "keywords": ["twitterwall", "twitter"], "license": "MIT", "version": "0.1.4", "dependencies": { "express": "3.0.x", "socket.io": "0.9.x" } }
Any application that can be written in JavaScript, will eventually be written in JavaScript.
Powered By | JavaScript. Googles V8 |
---|---|
JavaScript | Ereignisbasierte Programierung mittels Callbacks.
Funktional. |
Stärken | Netzwerk-Anwendungen. I/O lastige Tasks. |
Schwächen | CPU-lastige Tasks. |
michi.ask(questions);
This presentation is licensed under the
Creative Commons Attribution 4.0 International
license.