Node.js یک منبع باز و نرم افزاری کاملا رایگان است که توسعه دهندگان وب را قادر می سازد تا برنامه های شبکه های مقیاس پذیر و سریع را ایجاد کنند. نرم افزار Node.js براساس زمان اجرا جاوا اسکریپت کروم بسیار کارآمد و سبک است، به ویژه به این دلیل که از یک مدل I / O مبتنی بر رویداد غیر بلوک استفاده می کند.
پلت فرم برتر برای اجرای کد جاوا اسکریپت در سمت سرور
Node.js در حال حاضر به عنوان پلت فرم برتر برای اجرای کد جاوا اسکریپت در سمت سرور در نظر گرفته می شود، که در تولید در شرکت های بزرگ مثل گوگل، ای بی، یاهو، LinkedIn، مایکروسافت، Cloud9 و بسیاری دیگر استفاده می شود.
مثال اجباری
کد زیر سرور وب ساده ای را ایجاد می کند که با هر "درخواست" جهانی "Hello World" پاسخ می دهد.
var http = require ('http')؛
http.createServer (تابع (req، res) {
res.writeHead (200، {'Content-Type': 'text / plain'})؛
res.end ('Hello Worldn')؛
}) گوش دادن (1337، '127.0.0.1')؛
console.log ('سرور در حال اجرا در http://127.0.0.1:1337/')؛
برای اجرای سرور HTTP، شما باید به کد بالا در یک فایل به نام & ldquo؛ example.js & rdquo؛ (بدون نقل قول) و آن را با استفاده از دستور گره از یک شبیه ساز ترمینال اجرا کنید:
٪ node example.js
سرور در حال اجرا در http://127.0.0.1:1337/
سیستم عامل های پشتیبانی شده
Node.js یک برنامه چند پلت فرم است که تحت توزیع گنو / لینوکس متعددی از جمله Debian، Ubuntu، Arch Linux، Fedora، Red Hat Enterprise Linux، openSUSE، Mageia، Slackware و دیگران نیز مورد آزمایش قرار گرفته است. همانطور که در Mac OS X تجاری و سیستم عامل های مایکروسافت ویندوز. هر دو معماری مجموعه 64 بیتی و 32 بیتی در این زمان پشتیبانی می شوند.
تحت هود، الزامات و در دسترس بودن
همانطور که ذکر شد، این یک نرم افزار چند پلت فرم است. این می تواند به عنوان نصب کننده های پیش ساخته شده برای سیستم عامل های Mac OS X، گنو / لینوکس و مایکروسافت ویندوز و همچنین یک آرشیو منبع جهانی که می توان آن را در تقریبا هر سیستم عامل ای که Python پشتیبانی می شود، نصب و نصب کند.
چه جدید در این نسخه است:
کنسول:
روش console.timeLog () اجرا شده است. # 21312
دپ ها:
ارتقا به libuv 1.22.0. # 21731
ارتقاء به ICU 62.1 (یونیکد 11، CLDR 33.1). # 21728
http:
اضافه شدن پشتیبانی از انتقال هر دو گزینه timeout و agent به http.request. # 21204
بازرس:
کنسول اصلی را در مورد نیاز (بازرس) کنسول قرار دهید. # 21659
napi:
پشتیبانی تجربی برای توابع با شماره های bigint اضافه شده است. # 21226
روند:
روش process.hrtime.bigint () اجرا شده است. # 21256
اضافه شده استدلال خط دستور tote1 برای تنظیم عنوان فرآیند در هنگام راه اندازی. # 21477
trace_events:
فرآیند فراموشی اضافه شده است # 21477
همکارانی جدید اضافه شد
codebytere - شلی وهر
در نسخه 10.0.0 جدید است:
پشتیبانی کامل از N-API
آسان شدن با اشکال زدایی Time-Travel از طریق یک کد جدید افزونه ویژوال استودیو آغاز شده است
پشتیبانی از TTD برای ژنراتورها و توابع async
پشتیبانی پروتکل بازرس
افزایش ثبات و سایر پیشرفت های مختلف
چه جدید در این نسخه است:
async_hooks:
اضافه کردن رویدادهای ردیابی به async_hooks (آندریاس مدسن) # 15538
اضافه کردن انواع ارائه دهنده برای سرور خالص (آندریاس مدسن) # 17157
کنسول:
کنسول .debug حالا می تواند در خارج از بازرس (بنجامین Zaslavsky) # 17033 استفاده می شود
دپ ها:
ارتقا libuv به 1.18.0 (cjihrig) # 17282
پچ V8 تا 6.2.414.46 (Myles Borins) # 17206
ماژول:
module.builtinModules یک لیست از ماژول های ساخته شده (Jon Moss) # 16386 را می دهد
n-api:
اضافه کردن helper برای addons برای دریافت حلقه رویداد (Anna Henningsen) # 17109
روند:
process.setUncaughtExceptionCaptureCallback هم اکنون می تواند مورد استفاده قرار گیرد برای سفارشی کردن رفتار برای --abort-on-uncaught-استثنا (آنا Henningsen) # 17159
در حال حاضر یک کنترل کننده سیگنال قادر به دریافت کد سیگنال است که باعث دستیابی به دستگیره می شود. (رابرت راسمن) # 15606
src:
embedders حالا می توان از Node :: CreatePlatform برای ایجاد یک نمونه از NodePlatform (Cheng Zhao) # 16981 استفاده کرد
جریان:
writable.writableHighWaterMark و readable.readableHighWaterMark ارزش مقادیر جريان stream را با (Calvin Metcalf) # 12860 نشان داد
همکارانی جدید اضافه شد
maclover7 جان موس
Guybedford Guy Bedford
هشتگ یانگ گئو
چه جدید در نسخه 9.2.0 است:
رمزنگاری:
پشتیبانی ساختمان با هر دو 1.1.0 و 1.0.2 (دیوید بنجامین) # 16130
fs:
fs.realpathSync.native و fs.realpath.native در حال حاضر در معرض (بن Noordhuis) # 15776
روند:
افشای process.ppid (cjihrig) # 16839
چه جدید در نسخه 8.5.0 است:
ساختن:Snapshots در حال حاضر در V8 # 14875 دوباره فعال هستند
کنسول:
اجرای console.group () حداقل # 14910
دپ ها:
ارتقا libuv به 1.14.1 # 14866
به روز رسانی nghttp2 به v1.25.0 # 14955
DNS:
گزینه dots.lookup () را به صورت پارامتر اضافه کنید. هنگامی که درست است، نتایج از Resolver DNS به صورت در حال انتقال است، بدون تغییر مجدد که Node.js در غیر این صورت که آدرس IPv4 را قبل از IPv6 آدرس قرار می دهد. # 14731
fs:
fs.copyFile و fs.copyFileSync را اضافه کنید که برای کپی کردن فایل های کارآمد تر امکان پذیر است. # 15034
بازرس:
پیکرهای Async پشته را 13870 فعال کنید
ماژول:
اضافه کردن پشتیبانی از ESM این در حال حاضر در پشت پرچم - experiments-modules و نیاز به توسعه extension .mjs دارد. گره - تجربی-ماژول index.mjs # 14369
napi:
اجرای وعده # 14365
OS:
اضافه کردن پشتیبانی از نماد CIDR به خروجی از روش شبکه Interfaces (). # 14307
perf_hooks:
پیاده سازی اولیه API Performance Timing برای Node.js. این همان API Performance Timing است که توسط مرورگرهای مدرن با تعدادی از ویژگی های خاص Node.js اجرا می شود. API Timestamp () و اندازه گیری () API اجرا می شوند. # 14680
TLS:
چندین PFX در createSecureContext # 14793
همکاران جدید اضافه شده است:
BridgeAR - Ruben Bridgewater
چه جدید در نسخه 8.3.0 است:
موتور V8 به نسخه 6.0 ارتقا یافته است که مشخصات عملکرد قابل توجهی تغییر یافته است.
سایر تغییرات قابل توجه:
DNS:
نمونه های مستقل DNS resolver اکنون پشتیبانی می شوند و پشتیبانی از لغو درخواست های مربوطه است.
N-API:
توابع متعدد N-API برای رسیدگی به خطا برای پشتیبانی از اختصاص کدهای خطا تغییر کرده اند.
REPL:
پشتیبانی از تکمیل خودکار برای نیاز () بهبود یافته است.
خدمات رفاهی:
استاندارد کدگذاری WHATWG (TextDecoder و TextEncoder) به عنوان یک ویژگی آزمایشی اجرا شده است.
چه جدید در نسخه 8.1.3 است:
جریان دو رگرسيون با ماژول جریان ثابت شده است:
رویداد پایان بعد از وقوع خطا در صورت انتشار هر کدام یک بار صادر می شود: [0a9e96e86c] # 13850
در حالت شیء، جریان قابل خواندن می تواند دوباره از تعریف نشده استفاده کند. [5840138e70] # 13760
چه جدید در نسخه 8.1.2 است:
رفع خواص process.release شکسته در 8.1.1 منجر به شکست در کامپایل افزودنی های مادری در سیستم عامل های غیر از ویندوز. این یک اصلاح در فرآیند ساخت Node.js است، بنابراین هیچ کد اضافی مرتکب شده در بالا 8.1.1 وجود ندارد.
چه جدید در نسخه 7.7.1 جدید است:
[c8e34b61f6] - ساخت: اضافه کردن فایل های هدر فایل src / ردیابی (Daniel Bevenius) # 10851
[96f55f9e59] - src: حرکت trace_event.h شامل هدر داخلی (بن Noordhuis) # 10959
[30c80cbe6f] - src: پاک کردن TracingController (Jason Ginchereau) # 10623
[b89b2a7d36] - src: همیشه مقداردهی کنترل کننده ردیابی را در عامل (Matt Loring) # 10507
[54e55e05ca] - تست: تست intl-no-icu-data را قوی تر کنید (مایکل زاسو) # 10992
[7b253eb3ed] - تست: افزایش شدت برای رویداد تست-ردی (Rich Trott) # 11065
[3dc4a5f1f4] - ردیابی: هشدار (سنتیاگو گیمنو) 10440
[8a918bf411] - ردیابی: ثابت - هشدار پیش تنظیم (سانتیاگو گیمنو) # 10416
چه جدید در نسخه 7.4.0 است:
بافر:
بهبود عملکرد تخصیص بافر به میزان 11٪. (براون سفید) # 10443
عملکرد Buffer.from () را تا 50٪ بهبود دهید. (براون سفید) # 10443
حوادث: بهبود عملکرد EventEmitter.once () با ~ 27٪. (براون سفید) # 10445
fs: اجازه انتقال Uint8Array به روش fs که در آن Buffers پشتیبانی می شوند. (آنا هنینگسن) # 10382
http: بهبود عملکرد سرور HTTP با ~ 7٪. (براون سفید) # 6533
npm: ارتقا به v4.0.5 (کت مارکتان) # 10330
چه جدید در نسخه 7.2.1 جدید است:
بافر:
رد شدن زمان اجرا Buffer () بدون جدید (آنا هنینگسن) # 9529
ثابت buffer.transcode () برای کدگذاری یک بایت کاراکتر به UCS2. (آنا هنینگسن) # 9838
وعده: - هشدارهای جاری در حال حاضر تولید stacktraces مفید برای هشدار وعده. (آنا هنینگسن) # 9525
پاسخ: رفع یک اشکال در جلوگیری از تجزیه صحیح توابع ژنراتور. (تدی کتز) # 9852
V8: ثابت رگرسیون عملکردی معنی دار است (Franziska Hinkelmann) # 9730
چه جدید در نسخه 7.2.0 است:
رمزنگاری: روشهای رمزگذاری setAuthTag () و setAAD اکنون این را باز می کنند.
DNS: برای حل و فصل 4 () و resolve6 () اجرا شده است {ttl: true}.
libuv: ارتقا به v1.10.1
یک سرریز بافر بالقوه هنگام نوشتن داده ها برای کنسول در ویندوز 10 ثابت شده است. (CVE-2016-9551)
فرآیند: یک املاک خارجی جدید به داده های بازگردانده شده توسط memoryUsage () اضافه شده است.
tls: نشت حافظه زمانی که نوشتهای در ارتباط با TLS صفر بود که در هنگام دست زدن نابود شد، رفع شد.
V8 (dep): ارتقا به v5.4.500.43
v8: داده هایی که توسط GetHeapStatistics () باز شده اند شامل سه فیلد جدید می باشد: malloced_memory، peak_malloced_memory، and does_zap_garbage.
در نسخه 6.4.0 جدید است:
ساخت: نمادهای zlib و نمادهای OpenSSL اضافی در سیستم عامل های ویندوز در معرض قرار می گیرند. (الکس هلتمن) # 7983 و # 7576
child_process، cluster: فرآیندهای فرزند فورا و کارکنان خوشه ای از تنظیمات stdio پشتیبانی می کنند. (کالین ایهگر) # 7811 و # 7838
child_process: argv [0] اکنون می تواند به مقدار دلخواه در فرآیند های ایجاد شده تنظیم شود. (Pat Pannuto) # 7696
fs: fs.ReadStream اکنون تعدادی از بایت هایی را که تا کنون خوانده اید را نشان می دهد. (Linus Unneback) # 7942
پاسخ: REPL اکنون از حالت ویرایشگر پشتیبانی می کند. (شاهزاده جی وسلی) # 7275
util: بازرسی () اکنون می تواند با استفاده از util.inspect.defaultOptions در سطح جهانی پیکربندی شود. (روم ریس) # 8013
چه جدید در نسخه 6.3.0 است:
بافر: Buffer.swap64 () برای تکمیل swap16 () & amp؛ swap32 () (زک بجورنسون) # 7157ساخت: گزینه های پیکربندی جدید برای ساخت Node.js به عنوان یک کتابخانه به اشتراک گذاشته شده است. (استفان بودانه) # 6994
گزینه ها عبارتند از: - اشتراک گذاری، --without-v8-platform & amp؛ -without-coupled-v8.
رمزنگاری: گواهی ریشه به روز شده است. (بن Noordhuis) # 7363
اشکال زدایی: آدرس سرور در حال حاضر قابل تنظیم از طریق --debug = :. (بن Noordhuis) # 3316
npm: ارتقاء npm به v3.10.3 (کت مارکتان) # 7515 & amp؛ (ربکا ترنر) # 7410
readline: افزودن گزینه فوری به buildline readline. (ایوان لوکاس) # 7125
پاسخ / vm: sigint / ctrl + c اکنون بدون حلقه های بی نهایت بدون متوقف کردن نمونه Node.js شکست خواهد خورد. (آنا هنینگسن) # 6635
src:
یک گره اضافه شده است :: FreeEnvironment C ++ API عمومی. (چنگ ژائو) # 3098
Refactored نیاز به ('ثابت')، ثابت ها در حال حاضر به طور مستقیم از ماژول مربوطه خود را در دسترس هستند. (جیمز مین اسلل) # 6534
جریان: بهبود عملکرد readable.read () تا 70٪. (براون سفید) # 7077
تایمر: setImmediate () در حال حاضر تا 150٪ سریعتر در برخی موارد است. (Andras) # 6436
util: افزودن گزینه breakLength به util.inspect () برای کنترل چگونگی قالب بندی اشیا در میان خطوط. (cjihrig) # 7499
v8-inspect: پشتیبانی آزمایشی برای اشکالزدایی Node.js بیش از پروتکل بازرس اضافه شده است. (علی عجز شیخ) # 6792
توجه: این ویژگی آزمایشی است و می توان آن را تغییر یا حذف کرد.
شما می توانید این قابلیت را با اجرای Node.js با پرچم --inspect امتحان کنید.
در نسخه 6.0.0 جدید است:
بافر:سازندگان جدید Buffer # 4682 و # 5833 اضافه شده اند.
سازندگان موجود Buffer () و SlowBuffer () در اسناد شماره 4682 و # 5833 نادیده گرفته شده اند.
API های بافر قبلی منسوخ # 5048، # 4594 حذف شدند.
بهبود خطا در پردازش # 4514.
روش Buffer.prototype.lastIndexOf () # 4846 اضافه شده است.
خوشه:
کارگر به عنوان اولین استدلال در رویداد 'پیام' شماره 5361 منتشر شد.
اموال worker.exitedAfterDisconnect جایگزین worker.suicide # 3743 می شود.
کنسول:
اکنون با استفاده از console.timeEnd () با یک برچسب ناشناخته هشدار روند را به جای پرتاب شماره 5901 منتشر می کند.
رمزنگاری:
بهبود خطا در اداره # 3100، # 5611.
اتصال کلاس های ساده شده # 5382.
کنترل بهتر بر روی حالت FIPS # 5181.
pbkdf2 بارگیری هضم 4047 # تخفیف است
وابستگی:
# 5775 پشتیبانی از c-ares مجددا ایجاد کنید.
V8 به 5.0.71.35 به روز شد # 6372.
DNS:
API dns.resolvePtr () را برای رونویسی پروندههای DNS PTR شماره 4921 اضافه کنید.
دامنه ها:
پاک کردن پشته زمانی که هیچ خطاگر شماره 4659 نیست.
مناسبت ها:شی EventEmitter.prototype._events دیگر از Object.prototype # 6092 به ارث نمی رسد.
روشهای EventEmitter.prototype.prependListener () و EventEmitter.prototype.prependOnceListener () # 6032 اضافه شده است.
سیستم فایل:
روش fs.realpath () و fs.realpathSync () برای استفاده از یک پیاده سازی مبتنی بر libuv کارآمد تر به روز شده است. این تغییر شامل حذف استدلال کش است و روش می تواند خطاهای جدید # 3594 را پرتاب کند.
FS Apis اکنون می تواند مسیرها را به عنوان Buffers # 5616 پذیرفته و بازگرداند.
خطا در مدیریت و تایید بهبود # 5616، # 5590، # 4518، # 3917.
رابط رشته fs.read از 4525 منصرف شده است.
HTTP:
'clientError' اکنون می تواند برای بازگشت خطاهای سفارشی از یک سرور HTTP 4557 استفاده شود.
ماژول ها:
در حال حاضر دایرکتوری فعلی برای جستجوهای محلی # 5689 اهمیت دارد.
لینک های نمادین در هنگام نیاز به ماژول # 5950 حفظ می شوند.
خالص:
نکات DNS دیگر به صورت ضمنی مجموعه # 6021 نیست.
رفع خطاهای بهبود یافته و تایپ تایپ # 5981، # 5733، # 2904.
OS X:
MACOSX_DEPLOYMENT_TARGET به 10.7 # 6402 رسیده است.
مسیر:
نوع تایید بهبود # 5348.
روند:هشدارهای فرآیند API # 4782 را وارد کنید.
هنگامی که غیرفعال به # بعدی بعدی # 3860 منتقل شد، استثناء را بکشید.
Querystring:
شیء بازگشتی توسط querystring.parse () دیگر از Object.prototype # 6055 به ارث نمی رسد.
Readline:
اطلاعات کلیدی بدون قید و شرط # 6024 منتشر می شود.
تاریخچه اکنون میتواند به صراحت # 6352 غیرفعال شود.
REPL:
تخصیص به _ هشدار # 5535 را منتشر می کند.
هنگامی که eval خطا # 6328 انجام می شود، عبارات دیگر تکمیل نخواهند شد.
تایمر:
زود هنگام شکست خوردن یک تابع شماره 4362 نیست.
جریانها:
null در حال حاضر یک شی تایید نامناسب برای نوشتن در حالت شی # 6170 است.
TLS:
تغییر نام 'clientError' به 'tlsClientError' # 4557.
SHA1 برای sessionIdContext # 3866 استفاده می شود.
TTY:
Package setRawMode که قبلا پاک شده است # 2528 حذف شده است.
URL:
نام کاربری و رمز عبور توسط url.resolve () حذف می شود اگر میزبان تغییر # 1480 شود.
ابزار:
تغییرات در قالببندی اشکال # 4582.
روش util._extend () 4903 نادیده گرفته شده است
روش util.log () 6161 نامعتبر است.
پنجره ها:
ویندوز ایکس پی و ویستا دیگر پشتیبانی نمی شوند # 5167.
زلیب:بهبودی چندگانه به پردازش زلیب # 5883 و # 5707 انجام شده است.
مورد نیاز:
پایتون
نظر یافت نشد