====== Express JS ======
====== Basic ======
==== Installing ====
- Create a packages.json: ''$ npm init''
- Install Express and save it in packages: ''$ npm install express --save''
==== Basic app ====
var express = require('express');
var app = express();
app.listen(3000, function() {
console.log("server started on Port 3000");
})
=== Routes ===
Take the get to de home (using request and the response):
app.get('/', fucntion(req, res) {
res.send('Hello world');
});
app.post('/users/add', function(req, res){
console.log(req.body.firstName);
res.redirect('/');
});
app.delete('/users/:id', function(req, res) {
console.log(req.params.id);
});
=== Things to do with the response ===
Return a variable in its json format: ''res.json(person);''
==== Special functions ====
''use'' is important to put it before any request.
var logger = function (req, res, next){
console.log('Logging');
next();
}
app.use(logger);
Set the view engine
app.set('view engine', 'ejs');
// with this we can render views:
res.render('index');
Set the views folder:
app.set('views', path.join(__dirname, 'views');
Set global variables
app.use(function(req, res, next) {
res.locals.errors = null;
next();
});
=== Static path ===
Add a "public" path:
var path = require('path');
app.use(express.static(path.join(__dirname, 'public'));
===== Notes =====
==== Modular applications ====
I generally use 1 file per route and put all my routing files in a routes folder and leverage the Router available in express.
A route file could look like this:
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
res.send('Hello World!');
});
module.exports = router;
Then in the app file, simply add:
var example = require('./routes/example');
app.use('/', example);
The routes in the routing file are relative to the route you declare in app.use.