6

node 版本迭代实在太快了,我们做开发的当然要时刻关注着最新信息,看看这些改变对我们有什么影响

v.9.0 一个重大版本更新,下面我们看看更新哪些内容

刚更新了六个小时,还挺热乎
clipboard.png

Async hooks 较旧的实验性API已被删除。

Errors

对Buffer模块错误信息进行了改进。

  • Node.js 抛错错误号分配和后续逻辑处理改进:
  • buffer: [e79a61cf80] #16352, [dbfe8c4ea2] #13976
  • child_process: [fe730d34ce] #14009
  • console: [0ecdf29340] #11340
  • crypto: [ee76f3153b] #16428, [df8c6c3651] #16453, [0a03e350fb] #16454, [eeada6ca63] #16448, [a78327f48b] #16429, [b8bc652869] #15757, [7124b466d9] #15746, [3ddc88b5c2] #15756
  • dns: [9cb390d899] #14212
  • events: [e5ad5456a2] #15623
  • fs: [219932a9f7] #15043, [b61cab2234] #11317
  • http: [11a2ca29ba] #14735, [a9f798ebcc] #13301, [bdfbce9241] #14423, [4843c2f415] #15603
  • inspector: [4cf56ad6f2] #15619
  • net: [a03d8cee1f] #11356, [7f55349079] #14782
  • path: [dcfbbacba8] #11319
  • process: [a0f7284346] #13739, [062071a9c3] #13285, [3129b2c035] #13982
  • querystring: [9788e96836] #15565
  • readline: [7f3f72c19b] #11390
  • repl: [aff8d358fa] #11347, [28227963fa] #13299
  • streams: [d50a802feb] #13310, [d2913384aa] #13291, [6e86a6651c] #16589, [88fb359c57] #15042, [db7d1339c3] #15665
  • string_decoder: [eb4940e2d2] #14682
  • timers: [4d893e093a] #14659
  • tls: [f67aa566a6] #13476, [3ccfeb483d] #13994
  • url: [473f0eff29] #13963
  • util: [de4a749788] #11301, [1609899142] #13293
  • v8: [ef238fb485] #16535
  • zlib: [896eaf6820] #16540, [74891412f1] #15618

Child Process

  • 错误发生在 process.nextTick上。
    Domains
  • 长期弃用的 dispose() 方法已被删除。

fs

  • fs.ReadStream 和 fs.WriteStream类可以使用destory()方法。
  • fs 模块的回调函数将在 undefined 上下文中执行。

HTTP/1

  • 解析失败时,将发送 400 Bad Request 状态码。
  • 套接字连接时设置其超时时间。
  • 修复了一个导致请求“error”事件触发两次的bug。
  • 现在除了net.Socket之外,HTTP客户端可以使用通用双工流。

Intl

  • 弃用的 Intl.v8BreakIterator 方法已被删除。

OS

  • os.EOL 成为只读属性。
  • Timers
  • setTimeout()的时间如果超出了32位无符号整数的最大值, 将会发出警告。

可惜node本身还不支持ES6的module

大概原因可能是node 基于 v8引擎,v8没一直实现的原因吧
现在谷歌浏览器一直也不支持


西树先森
7.1k 声望926 粉丝

从事开发多年,前端、后端(go、Python、php)、服务架构都有涉猎,经历过大公司、创业公司,擅长前端及公司技术选型。