2016-04-20 15 views
2

Ich lerne express js 4.0 und kompakter CRUD REST API Web-Anwendung mit ihm zu bauen. Im Lernprogramm werden zwei Möglichkeiten angezeigt. App verwenden und Router verwenden.router vs app in express 4.0

//using router 
    var router = express.Router(); 
    router.get('/', function(req,res){ 
    res.send('hello, world') 
    }); 

//using app 
    app.get('/', function(req,res){ 
    res.send('hello, world') 
    }); 

Für mich, ich fühle sie arbeiten gleich, aber ich weiß nicht, warum die Leute router verwenden, ich denke, mit app einfacher ist. Kann jemand erklären, was der Unterschied zwischen ihnen ist?

Antwort

4

Es ermöglicht Modularität. Viele Leute haben einen Routen-Ordner, in dem sie alle ihre Route-Handler behalten. Und dann in ihrer app.js-Datei tun sie einfach etwas wie app.use(<prefix>, <routes>); nachdem sie require ihren Router. Es hält Ihre Dateien kleiner und übersichtlicher.

Beispiel:

app.js

var express = require('express'); 
var rootRoutes = require('./routes/index'); 
var userRoutes = require('./routes/user'); 

var app = express(); 

app.use('/', rootRoutes); 
app.use('/user', userRoutes); 

module.exports = app; 

Routen/index.js

var express = require('express'); 
var router = express.Router(); 

router.get('/', function(req, res) { 
    res.render('index.jade'); 
}); 

router.get('/about', function(req, res) { 
    res.render('about.jade'); 
}); 

module.exports = router; 

Routen/user.js

var express = require('express'); 
var router = express.Router(); 

router.get('/:name', function(req, res) { 
    var userName = req.params.name; 
    res.render('user.jade', { 
    userName: userName 
    }); 
}); 

module.exports = router; 
+0

Einfach, aber sehr gut zu erklären. Vielen Dank – jaykodeveloper