Was sind die Namenskonventionen für Dateien und Ordner in einem großen Node.js-Projekt?
Soll ich groß schreiben, camelCase oder unterschätzen?
Dh. Wird dies als gültig angesehen?
project-name
app
controllers
someThings.js
users.js
models
someThing.js
user.js
views
some-things
index.jade
users
logIn.jade
signUp.jade
...
javascript
node.js
Rüdiger
quelle
quelle
require
die Verzeichniszeichenfolge als Parameter verwendet, weshalb sie nicht ganz Ihre eigene ist. dh.require('../app/controllers/someThings');
fs
), Einzelwort (events
), Unterstrich (child_process
) und Kleinbuchstaben (querystring
) verwendet.Antworten:
Nach einigen Jahren mit Node kann ich sagen, dass es keine Konventionen für die Verzeichnis- / Dateistruktur gibt. Die meisten (professionellen) Express-Anwendungen verwenden jedoch ein Setup wie:
Ein Beispiel, das dieses Setup verwendet, ist nodejs-Starter .
Ich persönlich habe dieses Setup geändert in:
Meiner Meinung nach passt Letzteres besser zur Unix-ähnlichen Verzeichnisstruktur (während Ersteres dies ein wenig durcheinander bringt).
Ich mag dieses Muster auch, um Dateien zu trennen:
lib / index.js
lib / static / index.js
Dies ermöglicht eine saubere Entkopplung des gesamten Quellcodes, ohne sich um Abhängigkeiten kümmern zu müssen. Eine wirklich gute Lösung, um böses Javascript zu bekämpfen. Ein reales Beispiel ist in der Nähe , das dieses Setup verwendet.
Update (Dateinamen):
In Bezug auf Dateinamen am häufigsten sind kurz , Klein Kleindateinamen.Wenn Ihre Datei nur mit zwei Wörtern beschrieben werden kann, verwenden die meisten JavaScript-Projekte einen Unterstrich als Trennzeichen.
Update (Variablen):
In Bezug auf Variablen gelten die gleichen "Regeln" wie für Dateinamen. Prototypen oder Klassen sollten jedoch camelCase verwenden .
Update (Styleguides):
quelle
bodokaiser
ist die Dinge zu persönlich für mich nehmen zu springen und Wunsch , dass seine Meinung , dies zu seiner Antwort hinzugefügt werden , in Bezug auf ((wie der OP zunächst in ihrer Frage gestellt) Husten Husten ).Verwenden
kebab-case
für alle Paket-, Ordner- und Dateinamen.Warum?
Sie sollten sich vorstellen, dass ein Ordner oder eine Datei eines Tages in ein eigenes Paket extrahiert werden könnte. Pakete dürfen keine Großbuchstaben enthalten.
Daher
camelCase
sollte niemals verwendet werden. Dies lässtsnake_case
undkebab-case
.kebab-case
ist heute bei weitem die häufigste Konvention. Unterstriche werden nur für interne Knotenpakete verwendet, und dies ist einfach eine Konvention von Anfang an.quelle
Es gibt keine Konventionen. Es gibt einige logische Strukturen.
Das einzige, was ich sagen kann: Verwenden Sie niemals camelCase-Datei- und Verzeichnisnamen. Warum? Es funktioniert, aber unter Mac und Windows gibt es keinen Unterschied zwischen someAction und some action. Ich bin diesem Problem begegnet und nicht ein einziges Mal. Ich benötige eine Datei wie diese:
Leider habe ich eine Datei mit Kleinbuchstaben erstellt :
lib/ishidden.js
. Es hat bei mir auf dem Mac funktioniert. Auf dem Mac meines Kollegen hat es gut funktioniert. Tests laufen ohne Fehler. Nach der Bereitstellung haben wir einen großen Fehler erhalten:Oh ja. Es ist eine Linux-Box. Die Verzeichnisstruktur von camelCase kann daher gefährlich sein. Es ist genug für einen Kollegen, der unter Windows oder Mac entwickelt.
Verwenden Sie daher bei Bedarf einen Unterstrich (_) oder einen Bindestrich (-).
quelle
const loginPage = browser.page.admin-login()
. Ich habe einen Fehler bekommenReferenceError: login is not defined
. Die Verwendung des Unterstrichs (_) für den Dateinamen löste das Problem. Ich kann mir auch vorstellen, dass die Verwendung von Dateinamen mit Bindestrich in der Befehlszeile ebenfalls zu Problemen führen kann. Daher würde ich sagen, dass der Unterstrich das sicherste Trennzeichen für Dateinamen im Allgemeinen ist.Basierend auf ' Google JavaScript Style Guide '
quelle
Die meisten Leute verwenden
camelCase
in JS. Wenn Sie etwas als Open Source veröffentlichen möchten, empfehle ich Ihnen, dieses zu verwenden :-)quelle
camelCase
für Controller-Dateien verwendet. :-) Kommt nur drauf an. Ich neige dazu,PascalCase
für klassenähnliche Dateien zu verwenden.Node.js erzwingt keine Dateinamenskonventionen (außer
index.js
). Und die Javascript-Sprache im Allgemeinen auch nicht. Hier finden Sie Dutzende von Threads, die auf camelCase, Bindestriche und Unterstriche hinweisen, von denen jeder perfekt funktioniert. Es liegt also an Ihnen. Wählen Sie eine und bleiben Sie dabei.quelle
Meiner Meinung nach: Verwenden Sie für Dateien Kleinbuchstaben, wenn module.exports ein Objekt ist, ich meine ein Singleton-Modul. Dies gilt auch für JSON-Dateien, da sie ebenfalls in einer Tonne vorliegen. Verwenden Sie Großbuchstaben, wenn module.exports eine Konstruktorfunktion zurückgibt, die sich wie eine Klasse verhält.
Verwenden Sie für Ordner Kurznamen. Wenn mehrere Wörter erforderlich sind, lassen Sie es vollständig durch "-" getrennt, damit es auf allen Plattformen konsistent funktioniert.
quelle