Εισαγωγή στο NodeJS + SailsJS

Γεια σε όλη την κοινότητα! Το όνομά μου είναι Bruno και έχω πάει DesdeLinux ως χρήστης. Ήρθε η ώρα να κάνω τις πρώτες μου δημοσιεύσεις σε αυτήν την κοινότητα 🙂

Σήμερα σας φέρνω έναν οδηγό NodeJS y πανιά.js

Node.js

Είναι ένα περιβάλλον προγραμματισμού, βασισμένο στη γλώσσα Javascript με αρχιτεκτονική προσανατολισμένη στην εκδήλωση, ιδανική για ασύγχρονο προγραμματισμό. Ο κόμβος, βασίζεται στον κινητήρα V8 της Google.
Διατηρεί μια ενεργή κοινότητα ανοιχτού κώδικα, η οποία έχει γράψει πολλές ενότητες για να διευκολύνει την ανάπτυξή μας.
Ένας από αυτούς είναι socket.io (Επιτρέπει στον διακομιστή να στέλνει ενημερώσεις σε πραγματικό χρόνο στον πελάτη, για παράδειγμα την παρακολούθηση ενός GPS)

Γιατί είναι;

Ο κόμβος έχει σχεδιαστεί για καταστάσεις όπου η κίνηση είναι πολύ μεγάλη, προκαλώντας τη λογική του διακομιστή και την απόδοση δεν είναι απαραίτητα υψηλότερη. Και όχι μόνο αυτό, αλλά σε πραγματικό χρόνο και με μεγάλη επεκτασιμότητα!

Γιατί κόμβος;

1 είναι ανοικτού κώδικα.
2) Αν σκεφτήκατε ποτέ να χρησιμοποιήσετε μία γλώσσα τόσο από διακομιστή όσο και από πλευράς πελάτη, εδώ είναι η λύση.
3) Επεκτασιμότητα και Σύμπτωση.
4) κ.λπ.

πανιά.js

Επέλεξα πανιά, λόγω των ακόλουθων χαρακτηριστικών εκτός από το γεγονός ότι κατά την άποψή μου ήταν το πιο ευανάγνωστο όσον αφορά τον κώδικα. Μάτι! υπάρχει ΠΟΛΛΑ πλαίσια για τον κόμβο, όπως είναι Εxpress, Γωνιώδης, ΓκέντιΚ.λπ.

Στιγμιότυπο οθόνης - 080913 - 13:21:50

Τι είναι το Sails;

Πρόκειται για ένα Πλαίσιο MVC που μιμείται το μοντέλο του ρουμπίνι στις ράγες (Ναι, ακούσατε σωστά: Δ) για τη δημιουργία μικρών ή μεγάλων εφαρμογών γρήγορα, εύκολα και με ασφάλεια. περαιτέρω έχει υποστήριξη για σύγχρονες απαιτήσεις εφαρμογής. Δεν έχει σημασία ποια βάση δεδομένων χρησιμοποιείτε, Το Sails παρέχει ένα επίπεδο αφαίρεσης, που κάνει την επιλογή του αδιάφορη. Τα Sails έχουν:

- Η ικανότητα δημιουργίας RESTful JSON API αυτομάτως.
- Ενσωματώνει την ενότητα socket.io.
- Δημιουργία διαδρομών αυτόματο για τους ελεγκτές σας.
- Παρέχει σύστημα πιστοποίηση ταυτότητας χρηστών και έλεγχος πρόσβασης βασίζεται στο ρόλο.
- γρυλλισμός ως Task Runner (Αυτόματες εργασίες όπως ελαχιστοποίηση, συλλογή, δοκιμές κ.λπ.)
- Στοιχεία: Όλα τα αρχεία στους αντίστοιχους καταλόγους τους (css, js) είναι ενοποιείται σε ένα μόνο αρχείο και ελαχιστοποιείται, για μείωση πολύ φόρτωση σελίδας και περιορισμένος αριθμός αιτημάτων προγράμματος περιήγησης.

Εγκατάσταση του Node.Js

Το turorial που έκανα με Ubuntu 13.04.

sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Εγκατάσταση Sails.Js

Τελευταία σταθερή έκδοση:
sudo npm -g install sails

Σε αυτό το σημείο χωρίς σφάλματα, δημιουργούμε ένα νέο έργο! 😀

Δημιουργία σκελετού καταλόγου:
sails new testProject

Μπαίνουμε στο Έργο μας:
cd testProject

Ξεκινάμε τον διακομιστή:
sails lift

Γεια σου! μπήκαμε http://localhost:1337/

Στιγμιότυπο οθόνης - 080913 - 13:02:34

Η δομή του καταλόγου μας πρέπει να έχει την εξής μορφή:
Στιγμιότυπο οθόνης - 080913 - 13:07:57

API:
- Οδηγοί
- Προσαρμογείς
- Μοντέλα
- Πολιτικές
- Υπηρεσίες

ΠΕΡΙΟΥΣΙΑΚΑ ΣΤΟΙΧΕΙΑ:
- εικόνες
- js
- στυλ
favicon
ρομπότ

ΔΙΑΜΟΡΦΩΣΗ:
- τοπικό
404.js, 500.js… ..
route.js
session.js
sockets.js …… ..

NODE_MODULES:
- ejs (πρότυπο κινητήρα)
- γρύλισμα
- αισιόδοξος
- δίσκοι πανιών

ΠΡΟΒΟΛΕΣ:
- Αρχική σελίδα (εδώ είναι το πρότυπο ρίζας, localhost)
- 404.ejs
- 500.ejs
- layout.ejs (Για όσους χρησιμοποίησαν ράγες, το layouts.ejs συμπεριφέρεται igual από το layouts.html. *)

EJS (Embedded Javascript) Είναι μια μηχανή προτύπου, αλλά όχι η μόνη. Μου αρέσει ιδιαίτερα το JADE καλύτερα

FIN

Μέχρι στιγμής οι γνώσεις μου, και ελπίζω ότι βοήθησα πολλούς ... είμαι νέος σε αυτήν την τεχνολογία, έτσι κάθε εποικοδομητική κριτική είναι καλωσορίστε ????

Αυτή η ανάρτηση προέκυψε να το κάνει, γιατί αναπτύσσω ένα είδος ψυχοκοινωνικού δικτύου (Τίποτα από άλλο κόσμο). Με σκοπούς της μάθησηςκαι λίγους πόρους. η ιδέα είναι επίσης να δημιουργήσετε έναν οικιακό διακομιστή που τον υποστηρίζει (Σίγουρα κάντε ένα φροντιστήριο για αυτόΌπως είπα προηγουμένως, οι πόροι είναι λίγοι, έτσι το βελτιστοποίηση Είναι πολύ σημαντικό. (και ακόμα κι αν δεν ήταν πάρα πολύ ^^)


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Άρθουρ Σέλμπι dijo

    Είμαι έκπληκτος για το πόσο πιστό μιμείται το RoR, αν και πολλοί μισούν τη RoR για την κακή απόδοσή του (χωρίς διαμόρφωση) για τον καθαρισμό κώδικα τάσης

    Το θέμα είναι πολύ ενδιαφέρον, ελπίζω να συνεχίσετε να το αναπτύσσετε, συγχαρητήρια.

    1.    nano dijo

      Δεν μισώ το RoR, η αλήθεια είναι ότι η φιλοσοφία του ρουμπίνι «υπάρχουν πολλοί τρόποι να κάνουμε το ίδιο πράγμα» είναι συνήθως πρόβλημα, επειδή δεν είναι όλοι οι πιο αποτελεσματικοί και όταν θέλετε να απαντήσετε σε μια ερώτηση, σε πολλές σε περίπτωση που έχετε αυτό το Μικρό πρόβλημα στο οποίο όλοι σας απαντούν με διαφορετικό τρόπο να κάνετε το ίδιο και τείνετε να μπερδεύεστε Δ:

      Όσον αφορά αυτό το πλαίσιο για το Node, καθώς δεν είναι για μεγάλα ή μεγάλα πράγματα, το Node χρησιμοποιείται μαζί με άλλα πλαίσια όπως το Django για συγκεκριμένα πράγματα, νομίζω ότι το παράδειγμα του Mejorando.la είναι έτσι, χτίζουν ολόκληρο τον ιστότοπο και διαχειρίζονται τις βάσεις του δεδομένων με το Django, αλλά τα ζητήματα σε πραγματικό χρόνο παραμένουν στο Node, αν και δεν είμαι σίγουρος, οπότε δεν μπορώ να μιλήσω πάρα πολύ για αυτό.

      1.    Jamin-Samuel dijo

        Νομίζω ότι έτσι λέτε, χρησιμοποιούν το Django για τη βάση του ιστότοπου και το Node για πράγματα σε πραγματικό χρόνο ... Λοιπόν τουλάχιστον αυτό ακούω πάντα να λέει ο freddy vega

        1.    Bruno cascio dijo

          Το NodeJS δεν είναι σαν το Django ή το PHP ή το ρουμπίνι. Αλλά είναι ένας διακομιστής όπως Apache, Nginx κ.λπ.

          Το Sails είναι το πλαίσιο που χρησιμοποιεί τα nodejs και εκφράζει (ένα άλλο πλαίσιο) μαζί με μερικές ενότητες όπως το socket.io, για τη δημιουργία διαδικτυακών εφαρμογών.

          Χαιρετισμούς!

          1.    Arnoldo RLF dijo

            οπότε αν θέλετε να συμπεριλάβετε μια συνομιλία που έγινε με nodejs με μια σελίδα στο python με το Django (για να συνεχίσετε με το παράδειγμα της βελτίωσης.la), θα πρέπει να χρησιμοποιήσετε ένα πλαίσιο ή να εκχωρήσετε στο apache (αν συμβαίνει αυτό, δεν έχω ιδέα ποιος διακομιστής χρησιμοποιήστε python) το μονοπάτι http://miweb.com ναι node.js http://miweb.com/chat και επικοινωνήστε μαζί τους

  2.   Jamin-Samuel dijo

    Γεια σου πολύ ενδιαφέρον….

    Αυτό που δεν ολοκλήρωσα είναι γιατί χρησιμοποιείται το Node JS για τον Ιστό;

    1.    Arnoldo RLF dijo

      Είναι μια εναλλακτική λύση για το Apache, με το πλεονέκτημα να είναι σε πραγματικό χρόνο (εφαρμογές που επικοινωνούν συνεχώς και όχι μόνο όταν υποβάλλεται το αίτημα).

      1.    Δαβίδ Γκόμεζ dijo

        Το NodeJS δεν αποτελεί εναλλακτική λύση (ή αντικατάσταση) σε Apache, NGINX ή οποιονδήποτε άλλο διακομιστή ιστού. Το NodeJS είναι ένας διερμηνέας JavaScript για το διακομιστή, επιτρέποντάς σας να δημιουργήσετε εφαρμογές με αυτήν τη γλώσσα που διαφορετικά θα απαιτούσαν τη χρήση γλωσσών όπως Java, Python, Ruby ή PHP.

        1.    Bruno cascio dijo

          Ναι, ίσως εκφραζόμουν λάθος. Αυτό που ήθελα να μεταφέρω είναι ότι το node.js τρέχει τον δικό του διακομιστή και δεν χρειάζεται τρίτους να δουλέψουν (apache, nginx, cherokee κ.λπ.)

          Χαιρετισμούς!

  3.   Arnoldo RLF dijo

    πολύ καλό, ελπίζω ότι περισσότερα μαθήματα θα μπορούν να ακολουθούν το node.js και να κάνουν κάτι σε πραγματικό χρόνο

    1.    Bruno cascio dijo

      Εδώ είναι ένα βιβλίο 200 σελίδων, με μια εισαγωγή στο Node.js μέσω Koans. Έχει το Node.js και την «επίλυση» ενός μέρους ενός προβλήματος που τίθεται (το παράδειγμα είναι το twitter) με το Express ως το πλαίσιο κεφαλίδας… ..

      http://nodejskoans.com/

      PS: Τα πανιά γίνονται σε βάση Express, συνήθως τα περισσότερα είναι.

      Χαιρετισμούς!

  4.   Έλαβ dijo

    Εξαιρετική συνεισφορά Bruno .. Καλώς ήλθατε 😀

    1.    Bruno cascio dijo

      Ευχαριστώ σε εσάς και ολόκληρη την κοινότητα που αφήσατε να συμμετάσχετε it Χαιρετισμούς!

  5.   auroszx dijo

    Πολύ ενδιαφέρον Bruno 🙂

    1.    Bruno cascio dijo

      Ευχαριστώ!

  6.   Η γυναίκα σφουγγαριών dijo

    Εξαιρετικό άρθρο. Ευχαριστώ πολύ.

    Προς το παρόν χρησιμοποιώ πανιά σε ορισμένα από τα έργα μου. Θα ήθελα να σας ρωτήσω πού μπορώ να λάβω περισσότερες πληροφορίες σχετικά με τον έλεγχο πρόσβασης βάσει ρόλων για πανιά, αν είναι δυνατόν στα Ισπανικά, αλλά αν όχι, στα Αγγλικά. Θα ήθελα να προσθέσω τον έλεγχο πρόσβασης σε μία από τις σελίδες μου, αλλά θέλω να δημιουργήσω δικαιώματα για ορισμένους χρήστες από μια συγκεκριμένη διαδρομή και άλλοι από μια άλλη διαδρομή. Είναι δυνατόν με πανιά; Δεν μπορώ να βρω πολλές πληροφορίες γι 'αυτό.

    Ευχαριστώ και συγχαρητήρια για το άρθρο.

    χαιρετίσματα
    Έλβιρα.

    1.    Bruno cascio dijo

      Γεια σας Elvira!

      Όσον αφορά αυτό που αναφέρετε, είτε πρόκειται για Sailsjs είτε για οποιοδήποτε άλλο πλαίσιο, αυτό που προτείνετε σχετίζεται με τη μοντελοποίηση των δεδομένων και τους περιορισμούς που επιβάλλει το σύστημα.

      Θα μπορούσατε να δημιουργήσετε κάτι σαν "ομάδες" (ρόλοι) με διαφορετικά δικαιώματα και να συσχετίσετε κάθε χρήστη με έναν από αυτούς.

      Ιδιαίτερα στα πανιά ονομάζονται "πολιτικές" και μπορείτε να το δείτε εδώ: http://sailsjs.org/#/documentation/concepts/Policies

      Χαιρετισμούς και ευχαριστώ για το σχόλιό σας!

      1.    Η γυναίκα σφουγγαριών dijo

        Ευχαριστώ πολύ Μπρούνο. Με τις οδηγίες σας, βρήκα μια κομψή λύση. ένας χαιρετισμός