Node.js Webanwendungsbeispiele / Tutorials [geschlossen]


110

Also habe ich Douglas Crockfords exzellente Serie auf Javascript zu Ende gesehen und in der letzten Episode (bis jetzt) erklärt er, warum Node.js eine nahezu perfekte Lösung für serverseitigen Code ist.

Er spricht davon, den Status nicht in der Datenbank, sondern in Schließungen, die in Node.js ausgeführt werden, beizubehalten. Außerdem stellt er fest, dass Template-Systeme (wie JSP, PHP und ASP) eine schlechte Abstraktion für kompliziertere Webanwendungen darstellen und von node.js bereitgestellt werden eine Lösung dafür.

Ich bin bereit, mich einzukaufen, kann jedoch keine Beispiele für Webanwendungen mit diesem Muster oder Bücher oder Tutorials dazu finden. Ich spreche nicht von einer einfachen Anwendung , sondern von etwas, das die Muster verwendet, von denen Crockford in seinem Vortrag gesprochen hat. Jeder weiß, wo ich einige in Node.js geschriebene Tutorials / Beispiele für Webanwendungen finden kann (und ja, ich kenne Geddy und ExpressJs , aber sie scheinen nicht den radikal unterschiedlichen Mustern zu folgen, von denen Crockford sprach, und waren eher so ein Railsy-Erlebnis auf Node.js bekommen).

[Anmerkung aus 3 Jahren in der Zukunft: Es scheint , als wären Express , Geddy , Sails , Kraken und alle Neuimplementierungen der Rails / Symfony / Spring-Frameworks von Ruby / PHP / Java. Während Dinge wie Hoodie und Meteor Versuche eines ganz neuen Paradigmas sind. KOA sieht interessant aus, ist aber weit davon entfernt, verwendbar zu sein, scheint jedoch auf den Stärken von Javascript mit der Geschichte der MVC-Anwendungen der Vergangenheit aufzubauen. Nach 3 Jahren sind es immer noch aufregende Zeiten für Nodejs, auch wenn es nicht mehr die neue Schärfe ist. Zumindest werden derzeit viele Beispiele aus der Praxis für Node verwendet ...


10
Ich finde es sehr konstruktiv. Ich suchte nach Tutorials / Anwendungen. Das hat bei mir funktioniert
MartinL

Antworten:



8

Der Node Knockout- Wettbewerb wurde kürzlich abgeschlossen, und viele der Einsendungen sind auf Github verfügbar. Die Wettbewerbsseite scheint momentan nicht zu funktionieren, aber ich bin sicher, Sie könnten ein paar Einträge googeln, um sie auszuchecken.


nodeknockout.posterous.com/and-the-winners-are enthält eine Liste einiger Einträge, jedoch keine direkten Links zu Github-Repos.
Chris Bloom

1
Das Node Knockout Github Repo enthält mehrere Projekte: github.com/nko
dhofstet


4

Aktualisieren

Dav Glass von Yahoo hat im November auf der YuiConf2010 einen Vortrag gehalten, der jetzt als Video von verfügbar ist .

Er zeigt in großem Umfang, wie man mit YUI3 Widgets auf der Serverseite rendern und sie mit GET-Anforderungen arbeiten lassen kann, wenn JS deaktiviert ist, oder sie einfach normal arbeiten lässt, wenn es aktiv ist.

Er zeigt auch Beispiele für die Verwendung von serverseitigem DOM zum Anwenden von Stylesheets vor dem Rendern und anderen coolen Dingen.

Die Demos finden Sie auf seinem GitHub-Account .

Der Teil, dem IMO fehlt, um dies wirklich großartig zu machen, ist eine Art zugrunde liegender Speicher des Widget-Status. Damit man die Seite ohne JavaScript besuchen kann und alles wie erwartet funktioniert, wird JS aktiviert und das Widget hat den gleichen Status wie zuvor, funktioniert jedoch ohne erneutes Laden der Seite. Anschließend werden einige Speicherungen auf dem Server + WebSockets vorgenommen, um mehrere zu synchronisieren Öffnen Sie den Browser ... und die nächste Generation unauffälliger und anmutig erniedrigender ARIAs ist geboren.

Ursprüngliche Antwort

Dann mach es selbst.

Im Ernst, 90% aller WebApps funktionieren mit einem REST-Ansatz einwandfrei. Natürlich können Sie magische Dinge wie überlegenes User-Tracking, Tracking von Downloads in Echtzeit, Überprüfen, welche Teile von Videos angesehen werden usw. tun.

Ein Problem ist die Skalierbarkeit. Sobald Sie mehr als einen Knotenprozess haben, verschwinden viele (aber nicht alle) Vorteile der Speicherung der Daten zwischen Anforderungen. Sie müssen also sicherstellen, dass Clients immer denselben Prozess ausführen. Und selbst dann benötigen größere Dinge wieder eine Datenbankebene.

Node.js ist nicht die Lösung für alles, ich bin sicher, dass die Leute in Zukunft wirklich großartige Sachen bauen werden, aber das braucht einige Zeit. Im Moment portieren viele nur Sachen auf Node, um die Dinge in Gang zu bringen.

Was (IMHO) Node.js so großartig macht, ist die Tatsache, dass es den Entwicklungsprozess rationalisiert, Sie weniger Code schreiben müssen, es perfekt mit JSON funktioniert, Sie verlieren all diesen Kontextwechsel.

Bisher habe ich hauptsächlich Spieleexperimente durchgeführt, aber ich kann mit Sicherheit sagen, dass es in Zukunft viele coole Multiplayer- (oder sogar MMO-) Dinge geben wird, die sowohl HTML5 als auch Node.js verwenden.

Node.js gewinnt immer noch an Zugkraft, es ist noch nicht einmal in der Nähe des RoR-Hype vor einigen Jahren (werfen Sie einen Blick auf das Node.js-Tag hier auf SO, kaum 4-5 Fragen pro Tag).

Rom (oder RoR) wurde nicht über Nacht gebaut und Node.js auch nicht.

Node.js hat das Potenzial, das es braucht, aber die Leute probieren immer noch Dinge aus, also würde ich vorschlagen, dass Sie sich ihnen anschließen :)


2

Am nächsten kommt wahrscheinlich Dav Glass 'experimentelle Arbeit mit node.js, express und YUI3. Grundsätzlich erklärt er, wie YUI3 zum Rendern von Markups auf der Serverseite verwendet und dann an den Client gesendet wird, wo eine Bindung an Ereignisse und Daten auftritt. Das Schöne ist, dass YUI3 sowohl auf dem Client als auch auf dem Server unverändert verwendet wird. Macht sehr viel Sinn. Das einzige große Problem ist, dass es noch keine produktionsbereite serverseitige DOM-Bibliothek gibt.

Screencast


1
Ja, tatsächlich war dieser Vortrag einer der Vorträge, die mich für Node.js begeistert haben (obwohl die Idee, jquery anstelle von YUI blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs zu verwenden, viel mehr ist aufregend für mich)
Kris Erickson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.