node 9.0
发布于 8 个月前 作者 spitWind 1637 次浏览 来自 分享

node 版本迭代实在太快了,我们做开发的当然要时刻关注着最新信息,看看这些改变对我们有什么影响 v.9.0 一个重大版本更新,下面我们看看更新哪些内容 刚更新了六个小时,还挺热乎

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没一直实现的原因吧 现在谷歌浏览器一直也不支持

5 回复

可以用ts开发,使用es6模块加载方式写,然后编译到 es5,es6都行

import url from ‘url’; import path from ‘path’;

Chrome已经支持ES6的module了吧: nodejs9也已经可以通过–experimental-modules配合mjs文件扩展名来实现ES6的module了

怎么说呢,其实9.0和8.9的差别非常小,主要是因为到了11.1号这个时间点,需要把8.x 切换到 lts,并且新起一个版本用来 current。所以暂时9.0还没多大变化

实在搞不懂,为什么一定要 import? nodejs 因为 import 和 require 是不兼容的所以一直不实现它,只在实验。现在用 webpack 什么的,都是把 import 转成 require,和 es6 的 import 根本不是一回事,如果 nodejs 完全接受 es 的标准引入 import,你确定你还能像现在用 webpack 那样使用它吗?

对于后端,暂时没看出import有什么明显的优势,除非你是ts

回到顶部