On Github dermike / node-workshop
Allt är javascript/JSON
var jsFile = require('./relative/path/file.js');
var jsFile = require('./relative/path/file.js');
var jsonFile = require('./relative/path/file.json');
// använder först file.js och sedan file.json
var someFile = require('./relative/path/file');
// letar först efter main i package.json
// annars index.js eller index.json
var someDir = require('./relative/path');
// letar efter core-modul med namn bajs
// sedan i ./node_modules/bajs
// sedan ../node_modules/bajs
// o s v
var bajs = require('bajs');
module.exports = "Hej hej från en sträng!";
// exporterar en literal
module.exports = function() { };
// exporterar en funktion
module.exports = {'key': 'value'};
// exporterar ett objekt
{
"name": "best-practices",
"description": "A package using versioning best-practices",
"author": "Art Vandelay <art@vandelay.com>",
"dependencies": {
"colors": "0.x.x",
"express": "2.3.x",
"optimist": "0.2.x"
},
"devDependencies": {
"vows": "0.5.x"
},
"engine": "node >= 0.4.1"
}
package.json
$ npm init $ npm install pkg [--save, --save-dev, -g] $ npm uninstall pkg [--save] $ npm prune $ npm ls $ npm update pkg
git clone https://github.com/dermike/node-workshop.git
cd exempel/exempel1
Starta med node index.js
var http = require('http');
http.createServer(function (req, res) {
console.log('Request inkommet!');
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!');
}).listen(1337, '127.0.0.1');
console.log('Server startad...');
Skriv om exemplet i modulform. Utgå ifrån ovning.js
Kom ihåg module.exports...
var http = require('http');
module.exports.start = function() {
http.createServer(function (req, res) {
console.log('Request inkommet!');
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!');
}).listen(1337, '127.0.0.1');
console.log('Server startad...');
};
cd exempel/exempel2
Skapa package.json med npm init Ladda ner de moduler som behövs i index.js och spara som dependencies Starta Chatt-appen med node index.js och gå till localhost:1337 i webbläsare Utforska koden i index.js och under public/
"bin": {
"mesh": "mesh.js"
}
cd exempel/exempel3
Installera dependencies med npm install chmod +x mesh.js Sök i Svensk MeSH med ./mesh.js sökord Valfri övning: modifiera exemplet så det går att visa förklaring såhär: ./mesh.js sökord --visaBower - A package manager for the web
Hantera frameworks, libraries, assets, utilities
{
"name": "ReferenceGuide",
"version": "1.0.0",
"homepage": "https://github.com/dermike/ReferenceGuide",
"authors": [
"Mikael Jergefelt <mike@redvolume.com>"
],
"license": "MIT",
"private": true,
"dependencies": {
"bootstrap": "3.2.0"
}
}
bower.json
Gulp.js - the streaming build system
Plugins för att minifiera, konkatenera, strippa, modifiera m m
var gulp = require('gulp');
var uncss = require('gulp-uncss'), concatCss = require('gulp-concat-css'), concat = require('gulp-concat'), uglify = require('gulp-uglify'), minifycss = require('gulp-minify-css');
gulp.task('css', function() {
gulp.src(['bower_components/bootstrap/dist/css/bootstrap.css', 'css/custom.css'])
.pipe(uncss({
html: ['test.html'], // Saved from full copy of DOM
ignore: ['.collapsing', '.collapse.in', '.spacing']
}))
.pipe(concatCss("bundle.css"))
.pipe(minifycss())
.pipe(gulp.dest('./css'));
});
gulp.task('scripts', function() {
gulp.src(['bower_components/jquery/dist/jquery.js',
'bower_components/bootstrap/js/transition.js',
'bower_components/bootstrap/js/collapse.js',
'js/main.js'])
.pipe(uglify())
.pipe(concat('all.js'))
.pipe(gulp.dest('./js'))
});
gulp.task('default', ['css', 'scripts']);
Tessel - Hardware development for software developers
Johnny-Five - JavaScript Arduino programming framework
Cylon.js - JavaScript robotics framework with support for 27 different platforms
Ambient sensor (ljud och ljus)
"Clap to turn on the TV (paired with infrared) or know from a webapp if the lights are on at home."
var tessel = require('tessel');
var ambientlib = require('ambient-attx4');
var ambient = ambientlib.use(tessel.port['A']);
ambient.on('ready', function () {
// Get points of light and sound data.
setInterval( function () {
ambient.getLightLevel( function(err, ldata) {
if (err) throw err;
ambient.getSoundLevel( function(err, sdata) {
if (err) throw err;
console.log("Light level:", ldata.toFixed(8), " ", "Sound Level:", sdata.toFixed(8));
});
})}, 500); // The readings will happen every .5 seconds unless the trigger is hit