Node.js v5.0.0 稳定版发布
Node v5.0.0 稳定版发布,主要更新如下:
bug 修复
-
buffer: (Breaking) Removed both
'raw'
and'raws'
encoding types fromBuffer
, these have been deprecated for a long time (Sakthipriyan Vairamani) #2859. -
console: (Breaking) Values reported by
console.time()
now have 3 decimals of accuracy added (Michaël Zasso) #3166. -
fs:
-
fs.readFile*()
,fs.writeFile*()
, andfs.appendFile*()
now also accept a file descriptor as their first argument (Johannes Wüller) #3163. -
(Breaking) In
fs.readFile()
, if an encoding is specified and the internaltoString()
fails the error is no longer thrown but is passed to the callback (Evan Lucas) #3485. -
(Breaking) In
fs.read()
(using thefs.read(fd, length, position, encoding, callback)
form), if the internaltoString()
fails the error is no longer thrown but is passed to the callback (Evan Lucas) #3503. -
http:
-
Fixed a bug where pipelined http requests would stall (Fedor Indutny) #3342.
-
(Breaking) When parsing HTTP, don't add duplicates of the following headers:
Retry-After
,ETag
,Last-Modified
,Server
,Age
,Expires
. This is in addition to the following headers which already block duplicates:Content-Type
,Content-Length
,User-Agent
,Referer
,Host
,Authorization
,Proxy-Authorization
,If-Modified-Since
,If-Unmodified-Since
,From
,Location
,Max-Forwards
(James M Snell) #3090. -
(Breaking) The
callback
argument toOutgoingMessage#setTimeout()
must be a function or aTypeError
is thrown (James M Snell) #3090. -
(Breaking) HTTP methods and header names must now conform to the RFC 2616 "token" rule, a list of allowed characters that excludes control characters and a number of separator characters. Specifically, methods and header names must now match
/^[a-zA-Z0-9_!#$%&'*+.^`|~-]+$/
or aTypeError
will be thrown (James M Snell) #2526. -
node:
-
(Breaking) Deprecated the
_linklist
module (Rich Trott) #3078. -
(Breaking) Removed
require.paths
andrequire.registerExtension()
, both had been previously set to throwError
when accessed (Sakthipriyan Vairamani) #2922. -
npm: Upgraded to version 3.3.6 from 2.14.7, see https://github.com/npm/npm/releases/tag/v3.3.6 for more details. This is a major version bump for npm and it has seen a significant amount of change. Please see the original npm v3.0.0 release notes for a list of major changes (Rebecca Turner) #3310.
-
src: (Breaking) Bumped
NODE_MODULE_VERSION
to47
from46
, this is necessary due to the V8 upgrade. Native add-ons will need to be recompiled (Rod Vagg) #3400. -
timers: Attempt to reuse the timer handle for
setTimeout().unref()
. This fixes a long-standing known issue where unrefed timers would perviously holdbeforeExit
open (Fedor Indutny) #3407. -
tls:
-
Added ALPN Support (Shigeki Ohtsu) #2564.
-
TLS options can now be passed in an object to
createSecurePair()
(Коренберг Марк) #2441. -
(Breaking) The default minimum DH key size for
tls.connect()
is now 1024 bits and a warning is shown when DH key size is less than 2048 bits. This a security consideration to prevent "logjam" attacks. A newminDHSize
TLS option can be used to override the default. (Shigeki Ohtsu) #1831. -
util:
-
(Breaking)
util.p()
was deprecated for years, and has now been removed (Wyatt Preul) #3432. -
(Breaking)
util.inherits()
can now work with ES6 classes. This is considered a breaking change because of potential subtle side-effects caused by a change from directly reassigning the prototype of the constructor usingctor.prototype = Object.create(superCtor.prototype, { constructor: { ... } })
to usingObject.setPrototypeOf(ctor.prototype, superCtor.prototype)
(Michaël Zasso) #3455. -
v8: (Breaking) Upgraded to 4.6.85.25 from 4.5.103.35 (Ali Ijaz Sheikh) #3351.
-
Implements the spread operator, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator for further information.
-
Implements
new.target
, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target for further information. -
zlib: Decompression now throws on truncated input (e.g. unexpected end of file) (Yuval Brik) #2595.
</ul> -
Surrogate pair in REPL can freeze terminal. #690
-
Calling
dns.setServers()
while a DNS query is in progress can cause the process to crash on a failed assertion. #894 -
url.resolve
may transfer the auth portion of the url when resolving between two full hosts, see #1435. -
Unicode characters in filesystem paths are not handled consistently across platforms or Node.js APIs. See #2088, #3401 and #3519.
Known issues
更多内容请看:发行说明
下载地址:
Windows 32-bit Installer: https://nodejs.org/dist/v5.0.0/node-v5.0.0-x86.msiWindows 64-bit Installer: https://nodejs.org/dist/v5.0.0/node-v5.0.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v5.0.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v5.0.0/win-x64/node.exe
Mac OS X 64-bit Installer: https://nodejs.org/dist/v5.0.0/node-v5.0.0.pkg
Mac OS X 64-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-darwin-x64.tar.gz
Linux 32-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x86.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz
SunOS 32-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-sunos-x86.tar.gz
SunOS 64-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-sunos-x64.tar.gz
ARMv6 32-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-armv6l.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-armv7l.tar.gz
ARMv8 64-bit Binary: https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-arm64.tar.gz
Source Code: https://nodejs.org/dist/v5.0.0/node-v5.0.0.tar.gz
Other release files: https://nodejs.org/dist/v5.0.0/
Documentation: https://nodejs.org/docs/v5.0.0/api/