2016-05-17 5 views
1

So habe ich einen Node/Express-Server eingerichtet, und wir machen den Übergang von Verzeichnissen zu Subdomains für die Lokalisierung, zB:Best Practice für Subdomains in einem Express-Server?

es.example.com  // old way 
www.example.com/es // new way 

dies tut für eine Vielzahl von Gründen, aber vor allem die Erhaltung zu erleichtern des JWT-Anmeldestatus über den internationalisierten Inhalt. Was ist die beste Vorgehensweise, um dies beim Erklären von Routen ausdrücklich zuzulassen?

Wenn ich eine Strecke einfach so ein:

app.use('/search') 

Dann, wenn ich versuche, einen Weg zu treffen, zB www.example.com/es/search, werde ich nur zu www.example.com/search umgeleitet werden, wird die es abgezogen werden. Dies kann jedoch wie folgt behoben werden:

app.use('*/search') 

Ich bin mir sicher, dass dies einige negative Auswirkungen haben muss? Wie lassen sich in der Regel Präfixe in Routen über Express zulassen?

Antwort

2

Wenn Sie Express 4 verwenden, können Sie modular routes verwenden, um eine Reihe von Routen zu erstellen, die dann für Ihre verschiedenen Ländercodes gemeinsam genutzt werden können. Dadurch wird sichergestellt, dass Sie nur Routen auf bestimmte Gebietsschema-Codes und nicht auf alle möglichen Wörter vor Ihrer Route anwenden (z. B. /fakePath/search).

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

router.use('/search'); 

module.exports = router; 


// index.js 
var routes = require('./routes'); 

app.use('/en', routes); 
app.use('/es', routes); 
// ...