====== Node.js ====== ===== dirty ===== Key Value Database ([[https://www.npmjs.org/package/dirty|npmjs.org]]) var dirty = require('dirty'); var db = dirty('/store.db'); var data = db.get('foobar'); db.set('foobar', "some content"); ===== request ===== HTTP Requests ([[https://www.npmjs.org/package/request|npmjs.org]]) var request = require('request'); request(url, function (error, response, html) { if (error || response.statusCode != 200) { console.error(error, response); return false;} console.log(html); }); ===== cheerio ===== jQuery like DOM Parser ([[https://www.npmjs.org/package/cheerio|npmjs.org]]) var cheerio = require('cheerio'); var $ = cheerio.load(body); ===== underscore ===== Utiliys ([[https://www.npmjs.org/package/underscore|npmjs.org]]) var _ = require('underscore'); ===== dialog ===== Window Prompts ([[https://www.npmjs.org/package/dialog|npmjs.org]]) var dialog = require('dialog'); dialog.info("text", "title"); ===== commander ===== Commandline Parameter ([[https://www.npmjs.org/package/commander|npmjs.org]]) var argv = require('commander'); argv .version('0.0.1') .option('-p, --peppers', 'Add peppers') .option('-c, --cheese [type]', 'Add type of cheese [marble]', 'marble') .parse(process.argv); console.log('you ordered a pizza with:'); if (argv .peppers) console.log(' - peppers'); console.log(' - %s cheese', program.cheese); ===== prompt ===== Userinput Abfrage ([[https://www.npmjs.org/package/prompt|npmjs.org]]) var prompt = require('prompt'); prompt.get(['username', 'email'], function (err, result) { console.log('Command-line input received:'); console.log(' username: ' + result.username); console.log(' email: ' + result.email); }); ===== fs-extra ===== Extra FileSystem tools ([[https://www.npmjs.org/package/fs-extra|npmjs.org]]) var fs = require('fs-extra') // Async with promises: fs.copy('/tmp/myfile', '/tmp/mynewfile') .then(() => console.log('success!')) .catch(err => console.error(err)) // Async with callbacks: fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { if (err) return console.error(err) console.log('success!') }) // Sync: try { fs.copySync('/tmp/myfile', '/tmp/mynewfile') console.log('success!') } catch (err) { console.error(err) } ===== mime ===== MIME-Type ([[https://www.npmjs.org/package/mime|npmjs.org]]) https://www.npmjs.org/package/mime var mime = require('mime'); mime.lookup('/path/to/file.txt'); // => 'text/plain' mime.lookup('file.txt'); // => 'text/plain' mime.lookup('.TXT'); // => 'text/plain' mime.lookup('htm'); // => 'text/html' ===== async ===== Queue, Warteschlange ([[https://www.npmjs.org/package/async|npmjs.org]]) var async = require('async'); var queue = async.queue(worker, 40); queue.push(ip); queue.drain = function() { console.log("all done"); } function worker (host, callback) { console.log("Hard Working"); for(var i = 0; i <= 5; i++) { if(i == 5) 7 callback(); } } } ===== socket.io ===== Realtime Web Communication ([[https://www.npmjs.org/package/socket.io|npmjs.org]]) var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); var port = process.env.PORT || 8080; server.listen(port, function () { console.log('Server listening at port %d', port); }); app.use(express.static(__dirname + '/public')); io.on('connection', function (socket) { socket.on('say', function (data) { // send to current request socket client socket.emit('message', "this is a test"); // sending to all clients, include sender io.sockets.emit('message', "this is a test"); // sending to all clients except sender socket.broadcast.emit('message', "this is a test"); // sending to all clients in 'game' room(channel) except sender socket.broadcast.to('game').emit('message', 'nice game'); // sending to all clients in 'game' room(channel), include sender io.sockets.in('game').emit('message', 'cool game'); // sending to individual socketid io.sockets.socket(socketid).emit('message', 'for your eyes only'); }); }); ===== mkdirp===== ([[https://www.npmjs.org/package/mkdirp|npmjs.org]]) var mkdirp = require('mkdirp'); mkdirp('./tmp/foo/bar/baz', function (err) { if (err) console.error(err) else console.log('pow!') }); ===== validator ===== Eingabe Überprüfung ([[https://www.npmjs.org/package/validator|npmjs.org]]) var validator = require('validator'); validator.isEmail('foo@bar.com'); //=> true ===== chalk ===== Farben/Colors in der Console ([[https://www.npmjs.org/package/chalk|npmjs.org]]) var chalk = require('chalk'); // Combine styled and normal strings log(chalk.blue('Hello') + 'World' + chalk.red('!')); // Compose multiple styles using the chainable API log(chalk.blue.bgRed.bold('Hello world!')); // Pass in multiple arguments log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); var error = chalk.bold.red; var warning = chalk.keyword('orange'); console.log(error('Error!')); console.log(warning('Warning!'));