2.2. 已弃用的功能


在 Red Hat build of Node.js 18 发行版本中,以下功能已弃用。

注意

有关本发行版本中已弃用或删除的功能的更多信息,请参阅 nodejs.org 网站。

当对象有自己的 toString 属性在以下任一方法中作为参数传递时,这个版本包括隐式对象到字符串的运行时弃用:

  • fs.write()
  • fs.writeFile()
  • fs.appendFile()
  • fs.writeFileSync()
  • fs.appendFileSync()

作为字符串 coercion 的替代选择,将对象转换为原语字符串。

此发行版本删除了在 dns.lookup () 和 dnsPromises.lookup () 方法中作为参数传递的选项类型。如果您使用以下任一选项类型和值组合,Node.js 现在会抛出 ERR_INVALID_ARG_TYPE 错误:

  • family 选项的非空的非整数值
  • hints 选项的一个非空的非数字值
  • all 选项的一个非空的、非布尔类型的值
  • verbatim 选项的非空非布尔值

2.2.3. multipleResolves的运行时弃用

此发行版本包括 multipleResolves 进程事件的运行时弃用。例如:

process.on('multipleResolves', handler)

multipleResolves 事件不适用于 V8 承诺组合器,这会影响此事件的有用性和可靠性,以便在使用 Promise 构造器时跟踪潜在的错误。例如,Promise.race () 方法也可以触发 multipleResolves 事件,这不一定表示错误。

2.2.4. 对 thenable 对象的支持

此发行版本在流实现方法中返回 thenable 对象的功能。使用 thenable 对象可能会导致意外问题,例如,用户以回调风格实现函数,但使用 async 方法。这种类型的实现会导致承诺和回调语义无效。

例如:

const w = new Writable({
  async final(callback) {
    await someOp();
    callback();
  },
});

作为 thenable 对象的替代选择,使用回调,对于流实现方法避免使用 async 函数。

2.2.5. tls.parseCertString()

此发行版本删除了 tls.parseCertString () 方法,这是解析证书主题和签发者字符串的解析程序帮助程序。tls.parseCertString () 方法无法正确处理多值 Relative Distinguished Names (RDN),这可能会导致不正确的表示和安全问题。

另外,_tls_common.translatePeerCertificate 不再转换 subject 和 issuer 属性。

注意

早期版本的 Node.js 建议使用 querystring.parse () 方法作为 tls.parseCertString () 的替代选择。但是,因为 querystring.parse () 也无法正确处理所有证书主题,这个版本不再建议使用 querystring.parse () 作为替代方案。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部