20 Stimmen

Verwirrt mit all den Node JS-Frameworks/Bibliotheken usw.

Ich fühle mich ein wenig verwirrt, es gibt so viele Frameworks da draußen für Node.js verwandte "Zeug". Wäre jemand in der Lage, mir einen Überblick darüber zu geben - wie die folgenden Bibliotheken/Frameworks/was auch immer miteinander in Beziehung stehen/interagieren - was enthalten ist oder was der Hauptzweck eines jeden von ihnen ist? - Unterschiede zwischen ihnen

Wenn es noch andere gibt, die ich auf meiner Liste vergessen habe, können Sie sie gerne hinzufügen und eine Beschreibung ihrer Funktion und ihrer Bedeutung hinzufügen.

  • Knotenpunkt
  • Coffeescript
  • Backbone
  • Express

22voto

Michelle Tilley Punkte 153542

Die meisten der von Ihnen aufgeführten Dinge sind nur deshalb miteinander verwandt, weil sie in JavaScript geschrieben sind oder anderweitig JavaScript verwenden. Sie zu vergleichen ist wie Äpfel mit Birnen zu vergleichen. Es ist, als würde man fragen, was der Unterschied zwischen einem Toyota Camry und einem V6-Motor ist. Sie sind zwar verwandt, tun aber unterschiedliche Dinge.

Knotenpunkt

Node, auch bekannt als Node.js, ist die JavaScript-Umgebung, auf der wir unseren serverseitigen JavaScript-Code ausführen. Sie basiert auf dem V8-JavaScript-Engine . Der gesamte JavaScript-Code, den Sie schreiben oder aus Paketen von NPM, GitHub usw. installieren und ausführen, wird von der Node-Laufzeitumgebung ausgeführt.

CoffeeScript

CoffeeScript ist schlicht und einfach eine Programmiersprache, die sich zu JavaScript kompilieren lässt. Ihr Zweck ist es, alle Möglichkeiten von JavaScript auf eine einfachere Art und Weise nutzbar zu machen. Es ist wichtig, sich vor Augen zu halten, dass der gesamte CoffeeScript-Code zu JavaScript kompiliert wird, wenn Sie ihn ausführen; die Unterschiede sind rein syntaktischer Natur. Auf der Website finden Sie viele weitere Informationen.

Backbone

Backbone kann als eine Modell-Ansichts-Steuerung Rahmen für JavaScript. Ich glaube, es wurde ursprünglich für den Browser geschrieben; es hilft, Ihr Client-seitiges JavaScript sauber zu halten, indem es die meisten gängigen MVC-Muster (sowie ein paar andere Dinge) implementiert, so dass Sie leichter verbinden Ihr client-seitiges JavaScript mit Ihrem server-seitigen Code.

Express

Express ist ein Web-Framework für Node.js, das auf Verbinden Sie . Sie ähnelt in vielerlei Hinsicht der Sinatra für Ruby. Es ermöglicht Ihnen die einfache Erstellung von Websites mit Routing, Layouts/Partials/Views, Sessions und mehr. Es gibt eine Menge Module von Drittanbietern für Express, so dass es ziemlich einfach ist, genau die Art von Stack zu bekommen, die Sie brauchen.


Es gibt eine ganze Reihe von Modulen für Node; zum Zeitpunkt dieses Schreibens, NPM hat über 3.000 veröffentlichte Pakete, und selbst für die beliebtesten würde man eine Menge Zeit brauchen! Vergewissern Sie sich, dass NPM oder die Modullistenseite einen Blick darauf werfen, wenn Sie ein neues Problem lösen müssen, um nicht das Rad zu erfinden (es sei denn, Sie wollen viel über Räder lernen :)

4voto

Raynos Punkte 162170

Mit node.js müssen Sie nur einen Rahmen auswählen . Beliebte Rahmenwerke sind z. B.

  • verbinden Eine Middleware-Komponente zur Verwaltung von HTTP-Anfragen
  • express Eine auf connect aufbauende Ansichtsmaschine und ein Router.
  • SocketStream Ein schnelles Echtzeit-Web-Framework für Node.js
  • zappa Nicht das Knotengerüst Ihrer Mutter
  • Heuschrecke ein MVC-Framework
  • geddy ein Web-Framework
  • spludo Ein weiteres MVC-Framework

Ich habe nur express und ich kann bestätigen, dass es fantastisch ist. Sie hat eine großartige Community und fantastische Unterstützung. Es ist auch die einzige Bibliothek, die ich kenne, die funktioniert einfach und das sagt eine Menge aus.

Außerdem verwendet die Node-Community optimierte Module, die ein bestimmtes Problem lösen, wenn sie dieses Problem lösen müssen. Frameworks sollten die minimalen Probleme der Handhabung von HTTP-Anfragen und express löst das Problem.

Nachfolgend finden Sie eine Ausnahme aus der Datei package.json.

"dependencies": {
    // my framework, used to handle HTTP
    "express": "2.4.4",
    // a very specific validation module used for input validation
    "validator": "0.2.7",
    // dust a templating engine
    "dust": "0.3.0",
    // a uuid factory
    "node-uuid": "1.2.0",
    // a markdown parser
    "marked": "0.0.4",
    // a HTTP request library
    "request": "2.0.3",
    // a traits (OOP) library
    "traits": "0.4.0",
    // a file tree watcher
    "watch": "0.3.2",
    // a CSS abstraction
    "less": "1.1.4",
    // a flow control library
    "after": "0.1.0",
    // a utility to extend Buffer
    "buffertools": "1.0.3"
},
"devDependencies": {
    // a unit testing library
    "vows-fluent": "0.1.0",
    // a unit testing utility
    "should": "0.2.1",
    // hot code reloading
    "nodemon": "0.5.3",
    // debugger
    "node-inspector": "0.1.9"
}

Wie Sie sehen können, verwende ich eine Framework und eine ganze Reihe handverlesener Hilfsbibliotheken, die eine Aufgabe lösen. Für die anderen Aufgaben entwickle ich meine eigenen (einige der oben aufgeführten Bibliotheken sind meine eigenen).

Ich habe zum Beispiel empfohlen backbone als eine solide MVC-Bibliothek, aber es funktioniert einfach nicht mit Knoten. Also habe ich meine eigene MVC-Abstraktion entwickelt. Ich habe auch empfohlen cradle als eine solide CouchDB Abstraktion, aber sie war undicht, also habe ich meinen eigenen Datenbankzugriffscode mit request um mit CouchDB zu sprechen.

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