2. WhatisNode.js ?
«Aplatform built onChrome's JavaScript runtime for easily building fast, scalable network applications.» http://nodejs.org/
Node.js isneithera server nora web framework
3. About Node.js
•Createdby Ryan Dahl in 2009
•Development and maintenance sponsored byJoyent
•LicenceMIT
•Last release : 0.10.31
•Based on Google V8 Engine
•+99 000 packages
4. Successstories
Rails to Node
« Servers were cut to 3 from 30 »
« Running up to 20x faster in some scenarios »
« Frontend and backend mobile teams could be combined […] »
Java to Node
« Built almost twice as fast with fewer people »
« Double the requests per second »
« 35% decrease in the average response time »
11. Loadmodule
•Coremodule : var http = require('http');
•Project file module : var mymodule= require(‘./module’); // ./module.js or ./module/index.js var mymodule= require(‘../module.js’); var mymodule= require(‘/package.json’);
•Packagedmodule (in node_modulesdirectory): var express = require(‘express’);
12. Createmodule 1/2
var PI = Math.PI;
exports.area= function(r) {
return PI * r * r;
};
var circle= require('./circle.js');
console.log('The area of a circle of radius 4 is '+ circle.area(4));
circle.js
13. Createmodule 2/2
var PI = Math.PI;
module.exports= function(r) {
return PI * r * r;
};
var circleArea= require('./circle-area.js');
console.log('The area of a circle of radius 4 is '+ circleArea(4));
circle-area.js
16. Express sample
var express = require('express');
var app= express();
app.get('/', function(req, res) {
res.send('Hello World!');
});
app.post('/:name', function (req, res) {
res.send('Hello !'+req.param('name'));
});
app.listen(3000);
17. Express middleware
Middleware can:
•Execute any code.
•Make changes to the request and the response objects.
•End the request-response cycle.
•Call the next middleware in the stack.
var express = require('express');
var app= express();
var cookieParser= require('cookie-parser');
app.use(express.static(__dirname+ '/public'));
app.use(cookieParser());
…
18. Express middleware modules
Module
Description
morgan
HTTP request logger middleware for node.js
express.static
Serve static content from the "public" directory (js, css, html, image, video, …)
body-parser
Parserequestbody and populatereq.body(ie: parsejsonbody)
cookie-parser
Parse cookie header and populate req.cookieswith an object keyed by the cookie names
cookie-session
Provide "guest" sessions, meaning any visitor will have a session, authenticated or not.
express-session
Providegenericsession functionality within-memorystorage by default
method-override
Lets you use HTTP verbs such as PUT or DELETE in places where the client doesn't support it.
csurf
Node.js CSRF protection middleware.
…
19. Express router
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('Hello World!');
});
router.post('/:name', function(req, res) {
res.send('Hello !'+req.param('name'));
});
var app= express();
app.use('/api/', router);
25. Mongooseinstance & save
/* Getthe model */
var Article = mongoose.model('Article');
/* Createa new instance */
var article = new Article({
title: 'Introduction to Mongoose',
body : 'This is an article about Mongoose'
});
/* Save the instance */
article.save(function(err){
if(err) return console.log("not saved !");
console.log("saved");
});
26. Mongoosequery
var Article = mongoose.model('Article');
// A query
Article
.where('user').equals(myUserId)
.where('tile', /mongoose/i)
.select('titlebody createdAt')
.sort('-createdAt')
.limit(10)
.exec (function (err, data){ /* do anything */ });
// The samequery
Article.find({
user : myUserId,
title: /mongoose/i
},
'titlebody createdAt',
{
sort : '-createdAt',
limit: 10
},
function (err, data){ /* do anything */ }
);