ಸರ್ವರ್-ಸೈಡ್ JavaScript Node.js 14.0 ಬಿಡುಗಡೆ

ನಡೆಯಿತು ಬಿಡುಗಡೆ Node.js 14.0,ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು. Node.js 14.0 ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ ಶಾಖೆಯಾಗಿದೆ, ಆದರೆ ಈ ಸ್ಥಿತಿಯನ್ನು ಸ್ಥಿರೀಕರಣದ ನಂತರ ಅಕ್ಟೋಬರ್‌ನಲ್ಲಿ ಮಾತ್ರ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. Node.js 14.0 ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ ನಡೆಸಲಾಗುವುದು ಏಪ್ರಿಲ್ 2023 ರವರೆಗೆ. Node.js 12.0 ನ ಹಿಂದಿನ LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಏಪ್ರಿಲ್ 2022 ರವರೆಗೆ ಇರುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ LTS ಶಾಖೆಯ ಹಿಂದಿನ ವರ್ಷ 10.0 ಏಪ್ರಿಲ್ 2021 ರವರೆಗೆ ಇರುತ್ತದೆ. 13.x ಸ್ಟೇಜಿಂಗ್ ಶಾಖೆಯ ಬೆಂಬಲವು ಈ ವರ್ಷದ ಜೂನ್‌ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.

ಮುಖ್ಯ ಅಭಿವೃದ್ಧಿಗಳು:

  • ಹಾರಾಡುತ್ತಿರುವಾಗ ಅಥವಾ ಕೆಲವು ಘಟನೆಗಳ ಸಂಭವಿಸುವಿಕೆಯ ಮೇಲೆ ಉತ್ಪಾದಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ ರೋಗನಿರ್ಣಯದ ವರದಿಗಳು, ಇದು ಕ್ರ್ಯಾಶ್‌ಗಳು, ಕಾರ್ಯಕ್ಷಮತೆಯ ಕ್ಷೀಣತೆ, ಮೆಮೊರಿ ಸೋರಿಕೆಗಳು, ಭಾರೀ CPU ಲೋಡ್, ಅನಿರೀಕ್ಷಿತ ದೋಷ ಔಟ್‌ಪುಟ್ ಮುಂತಾದ ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಹಾಯ ಮಾಡುವ ಈವೆಂಟ್‌ಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ.
  • ಪ್ರಾಯೋಗಿಕ API ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಅಸಿಂಕ್ ಸ್ಥಳೀಯ ಸಂಗ್ರಹಣೆ AsyncLocalStorage ವರ್ಗದ ಅನುಷ್ಠಾನದೊಂದಿಗೆ, ಕಾಲ್‌ಬ್ಯಾಕ್ ಕರೆಗಳು ಮತ್ತು ಭರವಸೆಗಳ ಆಧಾರದ ಮೇಲೆ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳೊಂದಿಗೆ ಅಸಮಕಾಲಿಕ ಸ್ಥಿತಿಯನ್ನು ರಚಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದು. AsyncLocalStorage ವೆಬ್ ವಿನಂತಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತಿರುವಾಗ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಥ್ರೆಡ್-ಸ್ಥಳೀಯ ಸಂಗ್ರಹಣೆಯನ್ನು ನೆನಪಿಸುತ್ತದೆ.
  • ಲೋಡ್ ಮಾಡುವಾಗ ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯದ ಕುರಿತು ಎಚ್ಚರಿಕೆ ಸಂದೇಶವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಮಾಡ್ಯೂಲ್‌ಗಳು ಇಸಿಮಾಸ್ಕ್ರಿಪ್ಟ್ 6 ಆಮದು ಮತ್ತು ರಫ್ತು ಹೇಳಿಕೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಪರ್ಕಿಸಲಾಗಿದೆ ಮತ್ತು ರಫ್ತು ಮಾಡಲಾಗಿದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ESM ಮಾಡ್ಯೂಲ್‌ಗಳ ಅನುಷ್ಠಾನವು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಉಳಿದಿದೆ.
  • V8 ಎಂಜಿನ್ ಆವೃತ್ತಿಗೆ ನವೀಕರಿಸಲಾಗಿದೆ 8.1 (1, 2, 3), ಇದು ಹೊಸ ಕಾರ್ಯಕ್ಷಮತೆಯ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು ಮತ್ತು ಹೊಸ ತಾರ್ಕಿಕ ಜೋಡಣೆ ಆಪರೇಟರ್‌ನಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ "??" (ಎಡ ಒಪೆರಾಂಡ್ NULL ಆಗಿದ್ದರೆ ಅಥವಾ ವ್ಯಾಖ್ಯಾನಿಸದಿದ್ದರೆ ಬಲ ಒಪೆರಾಂಡ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಯಾಗಿ), "?." ಆಪರೇಟರ್ ಗುಣಲಕ್ಷಣಗಳು ಅಥವಾ ಕರೆಗಳ ಸಂಪೂರ್ಣ ಸರಪಳಿಯ ಒಂದು-ಬಾರಿ ಪರಿಶೀಲನೆಗಾಗಿ (ಉದಾಹರಣೆಗೆ, "db?. ಬಳಕೆದಾರ?.ಹೆಸರು?. ಉದ್ದ" ಪ್ರಾಥಮಿಕ ಪರಿಶೀಲನೆಗಳಿಲ್ಲದೆ), ಸ್ಥಳೀಯ ಹೆಸರುಗಳನ್ನು ಪಡೆಯಲು Intl.DisplayName ವಿಧಾನ, ಇತ್ಯಾದಿ.
  • ಸ್ಟ್ರೀಮ್‌ಗಳ API ಯ ಪರಿಷ್ಕರಣೆಯನ್ನು ಕೈಗೊಳ್ಳಲಾಯಿತು, ಸ್ಟ್ರೀಮ್‌ಗಳ API ಗಳ ಸ್ಥಿರತೆಯನ್ನು ಸುಧಾರಿಸುವ ಮತ್ತು Node.js ನ ಮೂಲ ಭಾಗಗಳ ವರ್ತನೆಯಲ್ಲಿನ ವ್ಯತ್ಯಾಸಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಉದಾಹರಣೆಗೆ, http.OutgoingMessage ನ ನಡವಳಿಕೆಯು stream.Writable ಗೆ ಹತ್ತಿರದಲ್ಲಿದೆ ಮತ್ತು net.Socket stream.Duplex ಗೆ ಹೋಲುತ್ತದೆ. autoDestroy ಆಯ್ಕೆಯನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ "ನಿಜ" ಎಂದು ಹೊಂದಿಸಲಾಗಿದೆ, ಅಂದರೆ ಪೂರ್ಣಗೊಂಡ ನಂತರ "_destroy" ಎಂದು ಕರೆಯುವುದು.
  • ಪ್ರಾಯೋಗಿಕ API ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ವಾಸಿ (ವೆಬ್ ಅಸೆಂಬ್ಲಿ ಸಿಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್), ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ ನೇರ ಸಂವಹನಕ್ಕಾಗಿ ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಒದಗಿಸುವುದು (ಫೈಲ್‌ಗಳು, ಸಾಕೆಟ್‌ಗಳು, ಇತ್ಯಾದಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು POSIX API).
  • ಗಾಗಿ ಹೆಚ್ಚಿದ ಅವಶ್ಯಕತೆಗಳು ಕನಿಷ್ಠ ಆವೃತ್ತಿಗಳು ಕಂಪೈಲರ್‌ಗಳು ಮತ್ತು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು: macOS 10.13 (ಹೈ ಸಿಯೆರಾ), GCC 6, ವಿಂಡೋಸ್ ಹೊಸ 7/2008R2.

Node.js ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಸರ್ವರ್-ಸೈಡ್ ಬೆಂಬಲಕ್ಕಾಗಿ ಮತ್ತು ಸಾಮಾನ್ಯ ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ನೆಟ್‌ವರ್ಕ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರಚಿಸಲು ಎರಡೂ ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ನಾವು ನೆನಪಿಸಿಕೊಳ್ಳೋಣ. Node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲು, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಮಾಡ್ಯೂಲ್ಗಳ ಸಂಗ್ರಹ, ಇದರಲ್ಲಿ ನೀವು ಸರ್ವರ್‌ಗಳು ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಕಾಣಬಹುದು HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, ವಿವಿಧ ವೆಬ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕಾಗಿ ಮಾಡ್ಯೂಲ್‌ಗಳು, WebSocket ಮತ್ತು Ajax ಹ್ಯಾಂಡ್ಲರ್‌ಗಳು, DBMS ಗೆ ಕನೆಕ್ಟರ್‌ಗಳು (MySQL, PostgreSQL, SQLite , MongoDB ), ಟೆಂಪ್ಲೇಟ್ ಎಂಜಿನ್‌ಗಳು, CSS ಇಂಜಿನ್‌ಗಳು, ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳ ಅಳವಡಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣ ವ್ಯವಸ್ಥೆಗಳು (OAuth), XML ಪಾರ್ಸರ್‌ಗಳು.

ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಮಾನಾಂತರ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು, Node.js ನಿರ್ಬಂಧಿಸದ ಈವೆಂಟ್ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಆಧಾರದ ಮೇಲೆ ಅಸಮಕಾಲಿಕ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್ ಸಂಪರ್ಕಗಳಿಗೆ ಬೆಂಬಲಿತ ವಿಧಾನಗಳಲ್ಲಿ epoll, kqueue, /dev/poll, ಮತ್ತು ಆಯ್ಕೆ ಸೇರಿವೆ. ಮಲ್ಟಿಪ್ಲೆಕ್ಸ್ ಸಂಪರ್ಕಗಳಿಗೆ ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಲಿಬುವ್, ಇದು ಸೂಪರ್ಸ್ಟ್ರಕ್ಚರ್ ಆಗಿದೆ ಲಿಬೆವ್ Unix ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಮತ್ತು ವಿಂಡೋಸ್‌ನಲ್ಲಿ IOCP ಮೇಲೆ. ಥ್ರೆಡ್ ಪೂಲ್ ರಚಿಸಲು ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಲಿಬಿಯೊ, ನಿರ್ಬಂಧಿಸದ ಮೋಡ್‌ನಲ್ಲಿ DNS ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಂಯೋಜಿಸಲಾಗಿದೆ ಸಿ-ಅರೆಗಳು. ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವ ಎಲ್ಲಾ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಥ್ರೆಡ್ ಪೂಲ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ, ಸಿಗ್ನಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಂತೆ, ಹೆಸರಿಸದ ಪೈಪ್ ಮೂಲಕ ತಮ್ಮ ಕೆಲಸದ ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು Google ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಎಂಜಿನ್‌ನ ಬಳಕೆಯ ಮೂಲಕ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ V8 (ಇದಲ್ಲದೆ, ಮೈಕ್ರೋಸಾಫ್ಟ್ ಚಕ್ರ-ಕೋರ್ ಎಂಜಿನ್‌ನೊಂದಿಗೆ Node.js ನ ಆವೃತ್ತಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ).

ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, Node.js ಚೌಕಟ್ಟುಗಳನ್ನು ಹೋಲುತ್ತದೆ ಪರ್ಲ್ ಎನಿ ಈವೆಂಟ್, ರೂಬಿ ಈವೆಂಟ್ ಮೆಷಿನ್, ಹೆಬ್ಬಾವು ಟ್ವಿಸ್ಟೆಡ್ и ಅನುಷ್ಠಾನ Tcl ನಲ್ಲಿ ಈವೆಂಟ್‌ಗಳು, ಆದರೆ Node.js ನಲ್ಲಿನ ಈವೆಂಟ್ ಲೂಪ್ ಅನ್ನು ಡೆವಲಪರ್‌ನಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ ಮತ್ತು ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ಹೋಲುತ್ತದೆ. node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬರೆಯುವಾಗ, ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನ ನಿಶ್ಚಿತಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದು ಅವಶ್ಯಕ, ಉದಾಹರಣೆಗೆ, "var result = db.query ("ಆಯ್ಕೆ..");" ಕೆಲಸದ ಪೂರ್ಣಗೊಳ್ಳುವಿಕೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳ ನಂತರದ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಕಾಯುತ್ತಿರುವಾಗ, Node.js ಅಸಮಕಾಲಿಕ ಮರಣದಂಡನೆಯ ತತ್ವವನ್ನು ಬಳಸುತ್ತದೆ, ಅಂದರೆ. ಕೋಡ್ ಅನ್ನು "db.query("ಆಯ್ಕೆ..", ಫಂಕ್ಷನ್ (ಫಲಿತಾಂಶ) {ಫಲಿತಾಂಶ ಸಂಸ್ಕರಣೆ});" ಆಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ನಿಯಂತ್ರಣವು ತಕ್ಷಣವೇ ಮುಂದಿನ ಕೋಡ್‌ಗೆ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಬಂದಂತೆ ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ. .

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ