2014-05-12 7 views
25

Ich habe eine App mit folgendem Code für das Routing:Was ist der Unterschied zwischen "express.Router" und Routing mit "app.get"?

var router = express.Router(); 
router.post('/routepath', function(req, res) {}); 

Jetzt muß ich in verschiedenen Dateien Routing-Code eingeben, damit ich this Ansatz zu verwenden versucht, aber es ist nicht vielleicht, weil statt express.Router() es funktioniert verwendet:

app.post("/routepath", function (req, res) {}); 

Wie ich Routing kann mit express.Router() in verschiedenen Dateien setzen?

Warum app.get, app.post, app.delete, usw., arbeiten nicht in app.js nach express.Router() in ihnen mit?

+0

Auf http://stackoverflow.com/questions/28305120/differences-between-express-router-and-app-get –

Antwort

26

Hier ist ein einfaches Beispiel:

// myroutes.js 
var router = require('express').Router(); 

router.get('/', function(req, res) { 
    res.send('Hello from the custom router!'); 
}); 

module.exports = router; 

// main.js 
var app = require('express')(); 

app.use('/routepath', require('./myroutes')); 

app.get('/', function(req, res) { 
    res.send('Hello from the root path!'); 
}); 

Hier app.use() bei /routepath die Router Instanz Montage, so dass alle Routen zum Router Instanz hinzugefügt wird /routepath relativ sein.

+0

funktioniert gut für res.send danke aber Funktionen in main.js deklariert sind nicht zugänglich für Routen in myroutes.js – XIMRX

+1

Wenn Sie Code wie diesen geteilt haben, dann fügen Sie diesen Code in eine separate Datei/Modul (zB common.js) und erfordern Sie einfach() sie in Ihrem main.js und myroutes.js (und wo auch immer) . – mscdex

+0

Express 4.0 hat nicht 'app.router' – Ravi

Verwandte Themen