ಸರ್ವರ್-ಸೈಡ್ JavaScript ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ Node.js 18.0 ಲಭ್ಯವಿದೆ

Node.js 18.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ, ಇದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವ ವೇದಿಕೆಯಾಗಿದೆ. Node.js 18.0 ಅನ್ನು ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ ಶಾಖೆಯಾಗಿ ವರ್ಗೀಕರಿಸಲಾಗಿದೆ, ಆದರೆ ಸ್ಥಿರೀಕರಣದ ನಂತರ ಈ ಸ್ಥಿತಿಯನ್ನು ಅಕ್ಟೋಬರ್‌ನಲ್ಲಿ ಮಾತ್ರ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. Node.js 18.x ಅನ್ನು ಏಪ್ರಿಲ್ 2025 ರವರೆಗೆ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. Node.js 16.x ನ ಹಿಂದಿನ LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಏಪ್ರಿಲ್ 2024 ರವರೆಗೆ ಇರುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ LTS ಶಾಖೆಯ ಹಿಂದಿನ ವರ್ಷ 14.x ಏಪ್ರಿಲ್ 2023 ರವರೆಗೆ ಇರುತ್ತದೆ. 12.x LTS ಶಾಖೆಯನ್ನು ಏಪ್ರಿಲ್ 30 ರಂದು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುವುದು ಮತ್ತು Node.js 17.x ಸ್ಟೇಜಿಂಗ್ ಶಾಖೆಯನ್ನು ಜೂನ್ 1 ರಂದು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುವುದು.

ಮುಖ್ಯ ಸುಧಾರಣೆಗಳು:

  • V8 ಎಂಜಿನ್ ಅನ್ನು ಆವೃತ್ತಿ 10.1 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ, ಇದನ್ನು ಕ್ರೋಮಿಯಂ 101 ರಲ್ಲಿ ಬಳಸಲಾಗಿದೆ. Node.js ನ 17.9.0 ಬಿಡುಗಡೆಗೆ ಹೋಲಿಸಿದರೆ, ಅಂತ್ಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಅಂಶಗಳನ್ನು ಹುಡುಕಲು findLast ಮತ್ತು findLastIndex ವಿಧಾನಗಳಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಈಗ ಬೆಂಬಲವಿದೆ. ಒಂದು ಶ್ರೇಣಿ, ಮತ್ತು Intl.supportedValuesOf ಫಂಕ್ಷನ್. ಸುಧಾರಿತ Intl.Locale API. ವರ್ಗ ಕ್ಷೇತ್ರಗಳು ಮತ್ತು ಖಾಸಗಿ ವಿಧಾನಗಳ ಪ್ರಾರಂಭವನ್ನು ವೇಗಗೊಳಿಸಲಾಗಿದೆ.
  • ಪ್ರಾಯೋಗಿಕ ಪಡೆಯುವಿಕೆ() API ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಅನುಷ್ಠಾನವು HTTP/1.1 undici ಕ್ಲೈಂಟ್‌ನಿಂದ ಕೋಡ್ ಅನ್ನು ಆಧರಿಸಿದೆ ಮತ್ತು ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಒದಗಿಸಲಾದ ಒಂದೇ ರೀತಿಯ API ಗೆ ಸಾಧ್ಯವಾದಷ್ಟು ಹತ್ತಿರದಲ್ಲಿದೆ. ಇದು HTTP ವಿನಂತಿ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ ಹೆಡರ್‌ಗಳನ್ನು ಕುಶಲತೆಯಿಂದ ನಿರ್ವಹಿಸಲು FormData, ಹೆಡರ್‌ಗಳು, ವಿನಂತಿ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ ಇಂಟರ್‌ಫೇಸ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಒಳಗೊಂಡಿದೆ. const res = ತರಲು ನಿರೀಕ್ಷಿಸಿ ('https://nodejs.org/api/documentation.json'); ವೇಳೆ (res.ok) {const ಡೇಟಾ = ನಿರೀಕ್ಷಿಸಿ res.json(); console.log(ಡೇಟಾ); }
  • ವೆಬ್ ಸ್ಟ್ರೀಮ್‌ಗಳ API ಯ ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಸ್ವೀಕರಿಸಿದ ಡೇಟಾ ಸ್ಟ್ರೀಮ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸಂಪೂರ್ಣ ಫೈಲ್ ಡೌನ್‌ಲೋಡ್ ಆಗುವವರೆಗೆ ಕಾಯದೆ, ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಮಾಹಿತಿ ಬಂದಂತೆ ಡೇಟಾದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ನಿಮ್ಮ ಸ್ವಂತ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಸೇರಿಸಲು API ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. Node.js ನಲ್ಲಿ ಈಗ ಲಭ್ಯವಿರುವ ಆಬ್ಜೆಕ್ಟ್‌ಗಳೆಂದರೆ ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream ಮತ್ತು DecompressionStream.
  • Blob API ಅನ್ನು ಸ್ಥಿರತೆಗೆ ಸರಿಸಲಾಗಿದೆ, ವಿಭಿನ್ನ ವರ್ಕರ್ ಥ್ರೆಡ್‌ಗಳಲ್ಲಿ ಸುರಕ್ಷಿತ ಬಳಕೆಗಾಗಿ ಬದಲಾಗದ ಕಚ್ಚಾ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ಯಾಪ್ಸುಲೇಟ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • BroadcastChannel API ಅನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ, ಸಂದೇಶಗಳ ವಿನಿಮಯವನ್ನು ಅಸಮಕಾಲಿಕ ಮೋಡ್‌ನಲ್ಲಿ “ಒಬ್ಬ ಕಳುಹಿಸುವವರು - ಅನೇಕ ಸ್ವೀಕರಿಸುವವರು” ಸ್ವರೂಪದಲ್ಲಿ ಸಂಘಟಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • ಪ್ರಾಯೋಗಿಕ ಮಾಡ್ಯೂಲ್ ನೋಡ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ: ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ರಚಿಸುವ ಮತ್ತು ಚಾಲನೆ ಮಾಡುವ ಪರೀಕ್ಷೆಯು TAP (ಯಾವುದಾದರೂ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ) ಸ್ವರೂಪದಲ್ಲಿ ಫಲಿತಾಂಶಗಳನ್ನು ನೀಡುತ್ತದೆ.
  • Red Hat Enterprise Linux (RHEL) 8 ಮತ್ತು Debian 2.28 ಮತ್ತು Ubuntu 10 ಸೇರಿದಂತೆ Glibc 20.04+ ಆಧಾರಿತ ಇತರ ವಿತರಣೆಗಳು, ಹಾಗೆಯೇ macOS 10.15+ ಗಾಗಿ ಸಿದ್ಧಪಡಿಸಿದ ಅಸೆಂಬ್ಲಿಗಳ ಉತ್ಪಾದನೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. V8 ಎಂಜಿನ್ ನಿರ್ಮಾಣದಲ್ಲಿನ ಸಮಸ್ಯೆಗಳಿಂದಾಗಿ, ವಿಂಡೋಸ್‌ಗಾಗಿ 32-ಬಿಟ್ ನಿರ್ಮಾಣಗಳ ರಚನೆಯನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಲ್ಲಿಸಲಾಗಿದೆ.
  • ಪ್ರಾರಂಭದಲ್ಲಿ ಆರಂಭಿಸಲಾದ ಬಳಕೆದಾರ-ಆಯ್ಕೆ ಮಾಡಲಾದ ಘಟಕಗಳೊಂದಿಗೆ Node.js ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಾಯೋಗಿಕ ಆಯ್ಕೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಆರಂಭಿಕ ಘಟಕಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು, "--node-snapshot-main" ಆಯ್ಕೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, "./configure —node-snapshot-main=marked.js; ಹೆಸರು ನೋಡ್"

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

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

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

ಮೂಲ: opennet.ru

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