579 Stimmen

ExpressJS Wie strukturiert man eine Anwendung?

Ich verwende das ExpressJS-Webframework für NodeJS.

Leute, die ExpressJS verwenden, legen ihre Umgebungen (Entwicklung, Produktion, Test...), ihre Routen usw. auf dem app.js . Ich denke, dass es nicht ein schöner Weg, weil, wenn Sie eine große Anwendung haben, app.js ist zu groß!

Ich möchte gerne diese Verzeichnisstruktur haben:

| my-application
| -- app.js
| -- config/
     | -- environment.js
     | -- routes.js

Hier ist mein Code:

app.js

var express = require('express');
var app = module.exports = express.createServer();

require('./config/environment.js')(app, express);
require('./config/routes.js')(app);

app.listen(3000);

config/environment.js

module.exports = function(app, express){
    app.configure(function() {
    app.use(express.logger());
    });

    app.configure('development', function() {
    app.use(express.errorHandler({
        dumpExceptions: true,
        showStack: true
    }));
    });

    app.configure('production', function() {
    app.use(express.errorHandler());
    });
};

config/routes.js

module.exports = function(app) {
    app.get('/', function(req, res) {
    res.send('Hello world !');
    });
};

Mein Code funktioniert gut und ich denke, dass die Struktur der Verzeichnisse schön ist. Allerdings musste der Code angepasst werden und ich bin mir nicht sicher, ob er gut/schön ist.

Ist es besser, meine Struktur von Verzeichnissen zu verwenden und den Code anzupassen oder einfach eine Datei (app.js) zu verwenden?

Vielen Dank für Ihre Ratschläge!

17voto

neebz Punkte 11259

Ich denke, das ist eine großartige Möglichkeit, das zu tun. Nicht auf express beschränkt, aber ich habe gesehen, eine ganze Reihe von node.js-Projekte auf github tun die gleiche Sache. Sie nehmen Sie die Konfigurationsparameter + kleinere Module (in einigen Fällen jeder URI) sind in separaten Dateien berücksichtigt.

Ich würde empfehlen, die express-spezifischen Projekte auf github durchzugehen, um eine Idee zu bekommen. IMO die Art und Weise, die Sie tun, ist richtig.

10voto

Ich gebe MVC-Stil Ordnerstruktur finden Sie bitte Balg.

Wir haben die folgende Ordnerstruktur für unsere großen und mittleren Webanwendungen verwendet.

 myapp   
|
|
|____app
|      |____controllers
|      |    |____home.js
|      |
|      |____models
|      |     |___home.js
|      |
|      |____views
|           |___404.ejs
|           |___error.ejs
|           |___index.ejs
|           |___login.ejs
|           |___signup.ejs
|   
|
|_____config
|     |___auth.js
|     |___constants.js
|     |___database.js
|     |___passport.js
|     |___routes.js
|
|
|____lib
|    |___email.js
|
|____node_modules
|
|
|____public.js
|    |____css
|    |    |__style.css
|    |    
|    |____js
|    |    |__script.js
|    |
|    |____img
|    |    |__img.jpg
|    |
|    |
|    |____uploads
|         |__img.jpg
|      
|   
|
|_____app.js
|
|
|
|_____package.json

Ich habe ein npm-Modul für Generation Express mvc Ordner structurer erstellt.

Bitte finden Sie den folgenden Text https://www.npmjs.com/package/express-mvc-generator

Mit einfachen Schritten können Sie diese Module erstellen und verwenden.

i) Modul installieren npm install express-mvc-generator -g

ii) Optionen prüfen express -h

iii) Erzeugen einer Express-MVC-Struktur express myapp

iv) Installieren Sie die Abhängigkeiten: npm install :

v)Öffnen Sie Ihre config/database.js , Bitte konfigurieren Sie Ihre Mongo-DB.

vi) Starten Sie die Anwendung node app o nodemon app

vii)URL prüfen http://localhost:8042/signup OR http://yourip:8042/signup

9voto

ecdeveloper Punkte 2649

Ich glaube nicht, dass es ein guter Ansatz ist, Routen zur Konfiguration hinzuzufügen. Eine bessere Struktur könnte etwa so aussehen:

application/
| - app.js
| - config.js
| - public/ (assets - js, css, images)
| - views/ (all your views files)
| - libraries/ (you can also call it modules/ or routes/)
    | - users.js
    | - products.js
    | - etc...

Die Dateien products.js und users.js enthalten also alle Ihre Routen und die gesamte Logik darin.

7voto

Stefan Punkte 849

Die letzte Antwort auf diese Frage ist schon eine Weile her. Außerdem hat Express vor kurzem die Version 4 veröffentlicht, die einige nützliche Funktionen für die Organisation der App-Struktur enthält.

Im Folgenden finden Sie einen langen, aktuellen Blogbeitrag über bewährte Verfahren zur Strukturierung Ihrer Express-Anwendung. http://www.terlici.com/2014/08/25/best-practices-express-structure.html

Es gibt auch ein GitHub-Repository, das die Ratschläge aus dem Artikel umsetzt. Es ist immer auf dem neuesten Stand mit der neuesten Express-Version.
https://github.com/terlici/base-express

6voto

TiansHUo Punkte 8269

Nun, ich lege meine Routen als json-Datei an, die ich zu Beginn einlese, und richte die Routen in einer for-Schleife in app.js ein. Die route.json enthält die Ansicht, die aufgerufen werden soll, und den Schlüssel für die Werte, die in die Route gesendet werden.
Das funktioniert für viele einfache Fälle, aber für spezielle Fälle musste ich einige Routen manuell erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X