2016-08-03 28 views
0

So ziemlich seit Ewigkeiten bin ich aus einem Grund und nur aus einem Grund von der NodeJS Backend Entwicklung weggeblieben: Fast alle Express Projekte, die ich begonnen habe oder zu denen ich gezwungen wurde Am Ende ist es ein großes Durcheinander, wo die gesamte Website auf einem einzigen Skript läuft, das +/- 5000 Zeilen lang ist.Wie schreibt man saubere, modulare express.js Anwendungen?

Das folgende Beispiel von der ExpressJS Hallo Welt-Seite, in dieser Form würde ich am Ende mehr und mehr Routen zu app hinzufügen, was zu einem riesigen Chaos von Code.

var express = require('express'); 
var app = express(); 

app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
}); 

Was ich kann nicht scheinen zu finden, ist, wie ich eine große Express Website nehmen könnte, und machen es zu einem modular Anwendung, bei der Routen sind kleine, wiederverwendbaren und leicht testbar. Wenn jemand eine Idee davon hat, wie dies zu tun ist, würde es sehr geschätzt werden.

+0

Welche Art von Antwort suchen Sie, um diese Frage zu erfüllen? Sie fragen nach einem großen Thema, das hier behandelt werden soll, zum Beispiel, wenn ich gefragt hätte, "Wie modellierst du eine Klasse?". Ich denke, diese Frage ist zu meinungsbezogen, um eine Antwort zu geben. Es gibt Hunderte von Anleitungen zur Erstellung von Microservices und zur Verwendung als Architekturmuster zur Erstellung von modularem Code sowie für Dutzende anderer Refactoring-Strategien. Vielleicht durchsuchen Sie auch den Code größerer GitHub-Projekte. –

+0

Exportieren Sie diese Funktionen aus anderen Modulen, so wie 'UserAuthentication.js'' export.login = function (req, res) {} 'und so weiter, und fügen Sie diese dann in Feature-Ordner ein. –

+0

Erstellen Sie separate Route Handler zusammen mit separaten Modulen, injizieren Sie die Module in 'app'. Sehen Sie sich https://github.com/warajgiri/express-bootstrap/blob/master/minions/index.js und https://github.com/warajgiri/express-bootstrap/blob/master/bootstrap/app.js# an. L91 –

Antwort

1

Normalerweise verwende ich 1 Datei pro Route und lege alle meine Routing-Dateien in einen routes Ordner und nutze den Router, der in Express verfügbar ist.

Eine Route-Datei könnte wie folgt aussehen:

var express = require('express'); 
var router = express.Router(); 
router.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

module.exports = router; 

dann in der App-Datei, fügen Sie einfach:

var example = require('./routes/example'); 
app.use('/', example); 

Die Routen in der Routing-Datei bezüglich zu der Route, die Sie in App erklären .benutzen.