$ 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.