It’s this time of year again, Node.js 5.0.0 has been released and it the next stable release of Node.js.
Now, Node.js 4.x.x is still the goto release if you have large roll outs of Node.js within your organisation. 4.x.x will still be receiving security and general matenance updates for the duration of its LTS life-cycle, However if you want the latest and greatest features then 5.0.0 will be more than stable.
What is new?
v8:
- Implements the spread operator, see.
- Implements new.target, see.
npm:
- Version
3.3.6
is now included. https://github.com/npm/npm/releases/tag/v3.3.6
console:
console.time()
- resolution now has 3 decimals of added accuracy.
fs:
fs.readFile
fs.writeFile
fs.appendFile
These all now accept a file descriptor as their first argument.
http:
- No more duplicates of the following headers:
Retry-After
,ETag
,Last-Modified
,Server
,Age
,Expires
. - Http methods and header names must conform to RFC 2616 “token” rules —
/^[a-zA-Z0-9_!#$%&'*+.^`|~-]+$/
or a TypeError. OutgoingMessage#setTimeout()
- must be a function or a TypeError is thrown (James M Snell)
tls:
- ALPN support has been added.
createSecurePair()
- can now be passed a TLS option.
zlib:
- Now throws on unexpected end of files.
What is deprecated?
internal:
_linklist
require.paths
require.registerExtension()
buffer:
raw
andraws
have been removed as encoding types.
util:
.p()
What has changed?
fs:
fs.readFile
fs.read
Some errors are now returned in the callback instead of being thrown.
util:
inherits
has been updated to work with ES6 classes, however the prototype has been rearranged and could be a breaking change for some consumers.
v8:
4.6.85.25
from4.5.103.35
timers:
setTimeout().unref()
- Attempt to reuse the timer handle internally; This fixes a long-standing known issue where unrefed timers would perviously holdbeforeExit
open.
tls:
.connect() - The default minimum DH key size 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 new minDHSize TLS option can be used to override the default
More
Checkout the whole changelog here: https://github.com/nodejs/node/blob/v5.0.0/CHANGELOG.md
At YLD! for any production code we will continue using 4.x.x, however for our own projects we will be playing around with 5.x.x