de-vraag
  • Ερωτήσεις
  • Ετικέτες
  • Χρήστες
Ειδοποιήσεις
Ανταμοιβές
Εγγραφή
Μόλις εγγραφείτε, θα ενημερωθείτε για τις απαντήσεις και τα σχόλια στις ερωτήσεις σας.
Συνδεθείτε
Αν έχετε ήδη λογαριασμό, συνδεθείτε για να ελέγξετε τις νέες ειδοποιήσεις.
Θα υπάρξουν ανταμοιβές για πρόσθετες ερωτήσεις, απαντήσεις και σχόλια.
Περισσότερα
Πηγή
Επεξεργασία
 Legend
Legend
Ερώτηση

Πώς να αποφασίσετε πότε να χρησιμοποιήσετε το Node.js;

Είμαι νέος σε αυτά τα πράγματα, αλλά τελευταία ακούω πολλά για το πόσο καλό είναι το Node.js. Λαμβάνοντας υπόψη πόσο μου αρέσει να δουλεύω με την jQuery και την JavaScript γενικά, δεν μπορώ'δεν μπορώ να μην αναρωτηθώ πώς να αποφασίσω πότε να χρησιμοποιήσω το Node.js. Η διαδικτυακή εφαρμογή που έχω στο μυαλό μου είναι κάτι σαν το Bitly - παίρνει κάποιο περιεχόμενο, το αρχειοθετεί.

Από όλη την εργασία που έκανα τις τελευταίες μέρες, πήρα τις ακόλουθες πληροφορίες. Node.js

  • είναι ένα εργαλείο γραμμής εντολών που μπορεί να εκτελεστεί ως κανονικός διακομιστής ιστού και επιτρέπει την εκτέλεση προγραμμάτων JavaScript
  • χρησιμοποιεί τη σπουδαία V8 JavaScript engine
  • είναι πολύ καλό όταν πρέπει να κάνετε πολλά πράγματα ταυτόχρονα
  • είναι βασισμένο σε συμβάντα, έτσι ώστε όλα τα υπέροχα Ajax-like πράγματα να μπορούν να γίνουν στην πλευρά του διακομιστή
  • μας επιτρέπει να μοιραζόμαστε κώδικα μεταξύ του προγράμματος περιήγησης και του backend
  • μας επιτρέπει να μιλάμε με τη MySQL

Ορισμένες από τις πηγές που έχω συναντήσει είναι οι εξής:

  • Diving into Node.js - Εισαγωγή και εγκατάσταση
  • Understanding NodeJS
  • Node by Example (Archive.is)
  • Let's Make a Web App: NodePad

Λαμβάνοντας υπόψη ότι το Node.js μπορεί να τρέξει σχεδόν out-of-the-box σε Amazon's EC2 instances, προσπαθώ να καταλάβω τι είδους προβλήματα απαιτούν το Node.js σε αντίθεση με οποιονδήποτε από τους ισχυρούς βασιλιάδες εκεί έξω όπως η PHP, η Python και η Ruby. Καταλαβαίνω ότι εξαρτάται πραγματικά από την εμπειρία που έχει κάποιος σε μια γλώσσα, αλλά η ερώτησή μου εμπίπτει περισσότερο στη γενική κατηγορία του: Πότε πρέπει να χρησιμοποιείται ένα συγκεκριμένο πλαίσιο και για τι είδους προβλήματα είναι ιδιαίτερα κατάλληλο;

2198 2011-02-21T05:20:51+00:00 3
Yvette Colomb
Yvette Colomb
Επεξεργασμένη ερώτηση Κάνε Νοέμβριος 2018 в 11:23
Python (programming language) - Wikipedia
en.wikipedia.org
Ajax (programming) - Wikipedia
en.wikipedia.org
PHP - Wikipedia
en.wikipedia.org
Amazon Elastic Compute Cloud - Wikipedia
en.wikipedia.org
Ruby (programming language) - Wikipedia
en.wikipedia.org
V8 (JavaScript engine) - Wikipedia
en.wikipedia.org
Bitly - Wikipedia
en.wikipedia.org
Προγραμματισμός
javascript
web-applications
node.js
Δημοφιλή βίντεο
NodeJS στα Ελληνικά 1 (Εισαγωγή)
NodeJS στα Ελληνικά 1 (Εισαγωγή)
πριν 2 χρόνια
Продвинутая JWT авторизация на React и Node js. Access, refresh, активация по почте
Продвинутая JWT авторизация на React и Node js. Access, refresh, активация по почте
πριν 11 μήνες
JWT Authentication Tutorial - Node.js
JWT Authentication Tutorial - Node.js
πριν 2 χρόνια
Call External API Using Node Js https & request module
Call External API Using Node Js https & request module
πριν 3 χρόνια
Backend для начинающих на node.js express. RESTfull API, CRUD, HTTP
Backend для начинающих на node.js express. RESTfull API, CRUD, HTTP
πριν 1 χρόνος
Node.js Tutorial for Beginners: Learn Node in 1 Hour
Node.js Tutorial for Beginners: Learn Node in 1 Hour
πριν 4 χρόνια
Build A Node.js API Authentication With JWT Tutorial
Build A Node.js API Authentication With JWT Tutorial
πριν 3 χρόνια
Node.js Tutorial for Beginners | Learn Node.js in Less Than 60 Minutes | Node.js Training | Edureka
Node.js Tutorial for Beginners | Learn Node.js in Less Than 60 Minutes | Node.js Training | Edureka
πριν 3 χρόνια
PYTHON VS NODEJS | WHAT'S YOUR CHOICE?
PYTHON VS NODEJS | WHAT'S YOUR CHOICE?
πριν 1 χρόνος
Understanding Requests in Node.js | Request Object in Node.js | Requests in Node.js
Understanding Requests in Node.js | Request Object in Node.js | Requests in Node.js
πριν 1 χρόνος
How to create a new Node.js project [6 of 26] | Node.js for Beginners
How to create a new Node.js project [6 of 26] | Node.js for Beginners
πριν 1 χρόνος
How to use the VS Code debugger with Node.js apps [24 of 26] | Node.js for Beginners
How to use the VS Code debugger with Node.js apps [24 of 26] | Node.js for Beginners
πριν 1 χρόνος
« Προηγούμενο
Επόμενο »
Αυτή η ερώτηση έχει 1 απάντηση στα αγγλικά, για να τις διαβάσετε συνδεθείτε στο λογαριασμό σας.
Λύση / Απάντηση
 Benson
Benson
Κάνε Φεβρουάριος 2011 в 5:30
2011-02-21T05:30:51+00:00
Περισσότερα
Πηγή
Επεξεργασία
#11919855

Κάνατε πολύ καλή δουλειά στο να συνοψίσετε τι είναι φοβερό στο Node.js. Η αίσθησή μου είναι ότι το Node.js είναι ιδιαίτερα κατάλληλο για εφαρμογές όπου θα θέλατε να διατηρήσετε μια μόνιμη σύνδεση από το πρόγραμμα περιήγησης πίσω στον διακομιστή. Χρησιμοποιώντας μια τεχνική γνωστή ως "long-polling", μπορείτε να γράψετε μια εφαρμογή που στέλνει ενημερώσεις στον χρήστη σε πραγματικό χρόνο. Η πραγματοποίηση long polling σε πολλούς από τους γίγαντες του διαδικτύου, όπως το Ruby on Rails ή το Django, θα δημιουργούσε τεράστιο φόρτο στον διακομιστή, επειδή κάθε ενεργός πελάτης τρώει μια διεργασία του διακομιστή. Αυτή η κατάσταση ισοδυναμεί με επίθεση tarpit. Όταν χρησιμοποιείτε κάτι όπως το Node.js, ο διακομιστής δεν έχει ανάγκη να διατηρεί ξεχωριστά νήματα για κάθε ανοιχτή σύνδεση.

Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε μια εφαρμογή συνομιλίας με βάση το πρόγραμμα περιήγησης σε Node.js που δεν χρειάζεται σχεδόν καθόλου πόρους συστήματος για να εξυπηρετεί πολλούς πελάτες. Κάθε φορά που θέλετε να κάνετε αυτού του είδους τη μακροχρόνια αναζήτηση, το Node.js είναι μια εξαιρετική επιλογή.

Αξίζει να αναφέρουμε ότι και η Ruby και η Python έχουν εργαλεία για να κάνουν κάτι τέτοιο (eventmachine και twisted, αντίστοιχα), αλλά ότι το Node.js το κάνει εξαιρετικά καλά, και από την αρχή. Η JavaScript είναι εξαιρετικά καλά τοποθετημένη σε ένα μοντέλο ταυτόχρονης λειτουργίας βασισμένο σε callback, και υπερέχει εδώ. Επίσης, η δυνατότητα σειριοποίησης και αποσειριοποίησης με JSON εγγενές τόσο στον πελάτη όσο και στον διακομιστή είναι αρκετά έξυπνη.

Ανυπομονώ να διαβάσω άλλες απαντήσεις εδώ, αυτή είναι μια φανταστική ερώτηση.

Αξίζει να επισημάνουμε ότι το Node.js είναι επίσης εξαιρετικό για καταστάσεις στις οποίες θα επαναχρησιμοποιήσετε πολύ κώδικα σε όλο το χάσμα πελάτη/εξυπηρετητή. Το Meteor framework το κάνει αυτό πολύ εύκολο, και πολλοί άνθρωποι προτείνουν ότι αυτό μπορεί να είναι το μέλλον της ανάπτυξης ιστοσελίδων. Μπορώ να πω από την εμπειρία μου ότι είναι πολύ διασκεδαστικό να γράφεις κώδικα στο Meteor, και ένα μεγάλο μέρος αυτού είναι να ξοδεύεις λιγότερο χρόνο σκεπτόμενος πώς θα αναδομήσεις τα δεδομένα σου, ώστε ο κώδικας που εκτελείται στο πρόγραμμα περιήγησης να μπορεί εύκολα να τα χειριστεί και να τα μεταβιβάσει πίσω.

Εδώ είναι ένα άρθρο για το Pyramid και το long-polling, το οποίο αποδεικνύεται ότι είναι πολύ εύκολο να ρυθμιστεί με λίγη βοήθεια από το gevent: TicTacToe και Long Polling με την Pyramid.

 Martin
Martin
Επεξεργασμένη απάντηση Κάνε Μάιος 2014 в 3:56
Ruby on Rails - Wikipedia
en.wikipedia.org
TicTacToe and Long Polling with Pyramid | M2
michael.merickel.org
Push technology - Wikipedia
en.wikipedia.org
eventmachine @ GitHub
rubyeventmachine.com
Django (web framework) - Wikipedia
en.wikipedia.org
Twisted
An event-driven networking engine written in Python and MIT licensed.
twistedmatrix.com
GitHub - arijitdasgupta/node_chat: A self contained chat server running on node, based on websocket
A self contained chat server running on node, based on websocket - GitHub - arijitdasgupta/node_chat: A self contained chat server running on node, based on websocket
github.com
Tarpit (networking) - Wikipedia
en.wikipedia.org
1357
0
 fisherwebdev
fisherwebdev
Κάνε Φεβρουάριος 2011 в 6:43
2011-02-21T06:43:31+00:00
Περισσότερα
Πηγή
Επεξεργασία
#11919856

Πιστεύω ότι το Node.js είναι καταλληλότερο για εφαρμογές πραγματικού χρόνου: διαδικτυακά παιχνίδια, εργαλεία συνεργασίας, δωμάτια συνομιλίας ή οτιδήποτε άλλο όπου αυτό που κάνει ένας χρήστης (ή ρομπότ; ή αισθητήρας;) με την εφαρμογή πρέπει να το βλέπουν οι άλλοι χρήστες αμέσως, χωρίς ανανέωση της σελίδας.

Θα πρέπει επίσης να αναφέρω ότι το Socket.IO σε συνδυασμό με το Node.js θα μειώσει την καθυστέρηση πραγματικού χρόνου ακόμη περισσότερο από ό,τι είναι δυνατό με το μακρύ polling. Το Socket.IO θα υποχωρήσει στο long polling ως το χειρότερο σενάριο, και αντ' αυτού θα χρησιμοποιήσει web sockets ή ακόμα και Flash, αν είναι διαθέσιμα.

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

Επίσης, ο Ryan Dahl είπε σε μια ομιλία που παρακολούθησα κάποτε ότι τα benchmarks του Node.js ανταγωνίζονται στενά το Nginx για κανονικά παλιά αιτήματα HTTP. Οπότε αν χτίσουμε με το Node.js, μπορούμε να εξυπηρετήσουμε τους κανονικούς μας πόρους αρκετά αποτελεσματικά, και όταν χρειαστούμε τα event-driven πράγματα, είναι έτοιμο να τα χειριστεί.

Επιπλέον, είναι όλο JavaScript όλη την ώρα. Lingua Franca σε όλη τη στοίβα.

409
0
 stewe
stewe
Κάνε Ιανουάριος 2012 в 1:48
2012-01-15T01:48:04+00:00
Περισσότερα
Πηγή
Επεξεργασία
#11919857

Για να είμαι σύντομος:

Το Node.js είναι κατάλληλο για εφαρμογές που έχουν πολλές ταυτόχρονες συνδέσεις και κάθε αίτημα χρειάζεται μόνο πολύ λίγους κύκλους CPU, επειδή ο βρόχος συμβάντων (με όλους τους άλλους πελάτες) μπλοκάρεται κατά τη διάρκεια της εκτέλεσης μιας συνάρτησης.

Ένα καλό άρθρο σχετικά με τον βρόχο συμβάντων στο Node.js είναι το Το τεχνολογικό ιστολόγιο του Mixu: Understanding the node.js event loop.

Peter Mortensen
Peter Mortensen
Επεξεργασμένη απάντηση Κάνε Μάρτιος 2014 в 6:20
206
0
Προσθήκη ερώτησης
Κατηγορίες
Όλα
Τεχνολογία
Πολιτισμός / Αναψυχή
Ζωή / Τέχνες
Επιστήμη
Επαγγελματικό
Επιχείρηση
Χρήστες
Όλα
Νέα
Δημοφιλές
1
Jasur Fozilov
Εγγεγραμμένη πριν 11 ώρες
2
Zuxriddin Muydinov
Εγγεγραμμένη πριν 1 μέρα
3
Денис Анненский
Εγγεγραμμένη πριν 3 μέρες
4
365
Εγγεγραμμένη πριν 1 εβδομάδα
5
True Image
Εγγεγραμμένη πριν 1 εβδομάδα
DE
EL
ES
FR
ID
IT
JA
KO
LT
NL
PT
RU
TR
ZH
© de-vraag 2022
Πηγή
stackoverflow.com
με άδεια cc by-sa 3.0 με αναφορά