Node.js v4.4.5发布

摘要:Node.js是一个后端的Javascript运行环境(支持的系统包括Linux、Windows和Mac等)。

看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。为什么采用C++语言呢?据Node.js创始人Ryan Dahl回忆,他最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了C++语言。既然不是Javascript应用,为何叫.js呢?因为Node.js是一个Javascript的运行环境。Node.js是一个后端的Javascript运行环境(支持的系统包括Linux、Windows和Mac等),这意味着你可以编写系统级或者服务器端的Javascript代码,交给Node.js来解释执行,Node.js采用了Google Chrome浏览器的V8引擎,性能很好,同时还提供了很多系统级的API,如文件操作、网络编程等。浏览器端的Javascript代码在运行时会受到各种安全性的限制,对客户系统的操作有限。相比之下,Node.js则是一个全面的后台运行时,为Javascript提供了其他语言能够实现的许多功能。

更新日志

Notable Changes

  • buffer:

    • Buffer no longer errors if you call lastIndexOf with a search term longer than the buffer (Anna Henningsen) #6511
  • contextify:

    • Context objects are now properly garbage collected, this solves a problem some individuals were experiencing with extreme memory growth (Ali Ijaz Sheikh) #6871
  • deps:

    • update npm to 2.15.5 (Rebecca Turner) #6663
  • http:

    • Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999 (Brian White) #6291

Commits

  • [59a977dd22] - assert: respect assert.doesNotThrow message. (Ilya Shaisultanov) #2407
  • [8b077faa82] - buffer: fix UCS2 indexOf for odd buffer length (Anna Henningsen) #6511
  • [12a9699fcf] - buffer: fix needle length misestimation for UCS2 (Anna Henningsen) #6511
  • [292b1b733e] - build: fix make tar-headers for Linux (Gibson Fahnestock) #5978
  • [918d33ad4b] - build: add script to create Android .mk files (Robert Chiras) #5544
  • [4ad71847bc] - build: add suport for x86 architecture (Robert Chiras) #5544
  • [6ad85914b1] - child_process: add nullptr checks after allocs (Anna Henningsen) #6256
  • [823f726f66] - contextify: tie lifetimes of context & sandbox (Ali Ijaz Sheikh) #5800
  • [9ddb44ba61] - contextify: cache sandbox and context in locals (Ali Ijaz Sheikh) #5392
  • [8ebdcd65b0] - contextify: replace deprecated SetWeak usage (Ali Ijaz Sheikh) #5392
  • [9e6d8170f7] - contextify: cleanup weak ref for sandbox (Ali Ijaz Sheikh) #5392
  • [b6fc15347d] - contextify: cleanup weak ref for global proxy (Ali Ijaz Sheikh) #5392
  • [0dc875e2c7] - deps: upgrade npm in LTS to 2.15.5 (Rebecca Turner)
  • [3c50350f41] - deps: fix null pointer checks in v8 (Michaël Zasso) #6669
  • [a40730b4b4] - deps: backport IsValid changes from 4e8736d in V8 (Michaël Zasso) #6669
  • [855604c53a] - deps: upgrade npm in LTS to 2.15.4 (Rebecca Turner) #6663
  • [433fb9a968] - deps: cherry-pick 1383d00 from v8 upstream (Fedor Indutny) #6179
  • [d1fca27ef8] - deps: backport 125ac66 from v8 upstream (Myles Borins) #6086
  • [df299019a0] - deps: upgrade npm in LTS to 2.15.2 (Kat Marchán)
  • [50f02bd8d6] - doc: update vm.runInDebugContext() example (Ben Noordhuis) #6757
  • [b872feade3] - doc: replace functions with arrow functions (abouthiroppy) #6203
  • [7160229be4] - doc: note that zlib.flush acts after pending writes (Anna Henningsen) #6172
  • [d069f2de8c] - doc: add full example for zlib.flush() (Anna Henningsen) #6172
  • [59814acfef] - doc: describe child.kill() pitfalls on linux (Robert Jefe Lindstaedt) #2098
  • [840c09492d] - doc: update openssl.org hash links (silverwind) #6817
  • [126fdc3171] - doc: fix issues related to page scrolling (Roman Reiss)
  • [29e25d8489] - doc: add steps for running addons + npm tests (Myles Borins) #6231
  • [fcc6a347f7] - doc: get rid of sneaky hard tabs in CHANGELOG (Myles Borins) #6608
  • [369569018e] - doc: revert backported commits (Myles Borins) #6530
  • [4ec9ae8a1c] - doc: explain differences in console.assert between node and browsers (James M Snell) #6169
  • [df5ce6fad4] - doc: native module reloading is not supported (Bryan English) #6168
  • [30f354f72b] - doc: clarify fs.watch() and inodes on linux, os x (Joran Dirk Greef) #6099
  • [29f821b73d] - doc: clarifies http.serverResponse implementation (Allen Hernandez) #6072
  • [6d560094f4] - doc: minor argument formatting in stream.markdown (James M Snell) #6016
  • [6a197ec617] - doc: fix http response event, Agent#getName (Matthew Douglass) #5993
  • [620a261240] - http: disallow sending obviously invalid status codes (Brian White) #6291
  • [9a8b53124d] - http: unref socket timer on parser execute (Fedor Indutny) #6286
  • [b28e44deb2] - http: Corrects IPv6 address in Host header (Mihai Potra) #5314
  • [2fac15ba94] - src: fix FindFirstCharacter argument alignment (Anna Henningsen) #6511
  • [2942cff069] - src: add missing 'inline' keywords (Ben Noordhuis) #6056
  • [e0eebf412e] - src,tools: remove null sentinel from source array (Ben Noordhuis) #5418
  • [8f18414cd5] - src,tools: drop nul byte from built-in source code (Ben Noordhuis) #5418
  • [d7a3ea457b] - src,tools: allow utf-8 in built-in js source code (Ben Noordhuis) #5418
  • [51c0808b55] - stream: Fix readableState.awaitDrain mechanism (Anna Henningsen) #6023
  • [49a5941d30] - test: fix test-debug-port-cluster flakiness (Rich Trott) #6769
  • [f8144e4c4a] - test: add logging for test-debug-port-cluster (Rich Trott) #6769
  • [773ea20d0e] - test: include component in tap output (Ben Noordhuis) #6653
  • [333369e1ff] - test: increase the platform timeout for AIX (Michael Dawson) #6342
  • [06e5fafe84] - test: add tests for console.assert (Evan Lucas) #6302
  • [f60ba54811] - test: add zlib close-after-error regression test (Anna Henningsen) #6270
  • [24ac16f4be] - test: fix flaky test-http-set-timeout-server (Santiago Gimeno) #6248
  • [5002a71357] - test: assert - fixed error messages to match the tests (surya panikkal) #6241
  • [0f9405dd33] - test: move more tests from sequential to parallel (Santiago Gimeno) #6187
  • [37cc249218] - test: fix test-net-settimeout flakiness (Santiago Gimeno) #6166
  • [69dcbb642f] - test: fix flaky test-child-process-fork-net (Rich Trott) #6138
  • [a97a6a9d69] - test: fix issues for ESLint 2.7.0 (silverwind) #6132
  • [a865975909] - test: fix flaky test-http-client-abort (Rich Trott) #6124
  • [25d4b5b1e9] - test: move some test from sequential to parallel (Santiago Gimeno) #6087
  • [28040ccf49] - test: refactor test-file-write-stream3 (Rich Trott) #6050
  • [3a67a05ed4] - test: enforce strict mode for test-domain-crypto (Rich Trott) #6047
  • [0b376cb3f9] - test: fix pummel test failures (Rich Trott) #6012
  • [7b60b8f8e9] - test: fix flakiness of stringbytes-external (Ali Ijaz Sheikh) #6705
  • [cc4c5187ed] - test: ensure test-npm-install uses correct node (Myles Borins) #6658
  • [3d4d5777bc] - test: refactor http-end-throw-socket-handling (Santiago Gimeno) #5676
  • [c76f214b90] - test,tools: enable linting for undefined vars (Rich Trott) #6255
  • [9222689215] - test,vm: enable strict mode for vm tests (Rich Trott) #6209
  • [b8c9d6b64e] - tools: enable linting for v8_prof_processor.js (Rich Trott) #6262
  • [8fa202947d] - tools: lint rule for assert.fail() (Rich Trott) #6261
  • [1aa6c5b7a9] - tools: update ESLint to 2.7.0 (silverwind) #6132
  • [68c7de4372] - tools: remove simplejson dependency (Sakthipriyan Vairamani) #6101
  • [4fb4ba98a8] - tools: remove disabling of already-disabled rule (Rich Trott) #6013
  • [4e6ea7f01a] - tools: remove obsolete npm test-legacy command (Kat Marchán)
  • [4c73ab4302] - tools,doc: fix json for grouped optional params (firedfox) #5977
  • [c893cd33d1] - tools,doc: parse types in braces everywhere (Alexander Makarenko) #5329
  • [48684af55f] - zlib: fix use after null when calling .close (James Lal) #5982

下载地址

Windows Installer (.msi) 32-bit 64-bit
Windows Binary (.exe) 32-bit 64-bit
Mac OS X Installer (.pkg) 64-bit
Mac OS X Binaries (.tar.gz) 64-bit
Linux Binaries (.tar.xz) 32-bit 64-bit
Source Code node-v4.4.5.tar.gz

其他平台

ARM Binaries (.tar.xz) ARMv6 ARMv7 ARMv8
SunOS Binaries (.tar.xz) 32-bit 64-bit
Docker Image Official Node.js Docker Image
Linux on Power Systems 64-bit le 64-bit be
Linux on System z Download (Unofficial, provided by IBM)
AIX on Power Systems Download (Unofficial, provided by IBM)

 

扩展阅读

Node.js 6.0正式发布:提供2年长期支持、覆盖93% ES6特性
FEX 技术周刊 - 2016/01/25
2014年国人开发的最热门的开源软件TOP 100
Node.js因为OpenSSL安全问题推迟更新
8 本最好的免费在线Node.js开发电子书籍

为您推荐

FEX 技术周刊 - 2015/11/23
jQuery Timelinr-垂直水平jQuery时间轴插件
Ruby己死?NodeJS能否取代Ruby?
10个最佳的HTML5代码段,以简化您的开发任务
20个你应该知道的有用HTML5代码段

更多

Node.js
JavaScript
开源软件