11. Express
Setting up ‘static assets’
var app = require('express').createServer();
app.use(
express.static(__dirname + '/public')
);
<script type=”foo.js”></script>
// is at http://foo.com/foo.js
// NOT http://foo.com/public/foo.js
12. Express
Passing data to views
app.get('/foo/bar', function(req, res){
res.render('foo/bar', {
locals: {
foo: ‘bar’
}
});
});
13. Express
Passing data to views
app.get('/users/:id', function(req, res){
// req.params contains
// the querystring values
var id = req.params.id;
});
14. Express
Passing data to views
app.use(express.bodyParser());
app.post('/users/:id', function(req, res){
// req.body contains the postback
var username = req.body.name;
});
25. MongooseDefault values
var mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost/myDB’);
var User = new mongoose.Schema({
username: String,
fullname: String,
password: String,
role: {
type: String,
default: ‘Admin’
}
});
26. Mongoose
Getters and Setters
var mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost/myDB’);
var User = new mongoose.Schema({
username: String,
fullname: String,
password: String
});
User.path(‘password’).set(function(value){
if (password.length < 8){
return new Error(‘Password must be more than 8 characters’);
} else {
return value;
}
});
27. Mongoose
Middleware / promises / whatever it’s called
User.pre(‘save’, function(next){
// do something
next();
});
User.pre(‘save’, function(next){
// do something else
next();
});
var myUserModel = mongoose.model(‘User’);
myUserModel.username = ‘fakedarren’;
myUserModel.fullname = ‘William Waddell’;
myUserModel.save();
28. Things I need for my
app
• Routing
• Database
• Templating
31. Jade
http://jade-lang.com/
!!! 5
html(lang="en")
head
title= pageTitle
script(type='text/javascript')
if (foo) {
bar()
}
body
h1 Jade - node template engine
#container
- if (youAreUsingJade)
p You are amazing
- else
p Get on it!
32. !!! 5
html(lang="en")
head
title= pageTitle
script(type='text/javascript')
if (foo) {
bar()
}
body
h1 Jade - node template engine
#container
- if (youAreUsingJade)
p You are amazing
- else
p Get on it!