2.2. 已弃用的功能
在 Red Hat build of Node.js 18 发行版本中,以下功能已弃用。
有关本发行版本中已弃用或删除的功能的更多信息,请参阅 nodejs.org 网站。
2.2.1. 在 fs methods 中字符串 coercion 的运行时弃用,用于写入或附加文件 复制链接链接已复制到粘贴板!
当对象有自己的 toString 属性在以下任一方法中作为参数传递时,这个版本包括隐式对象到字符串的运行时弃用:
-
fs.write() -
fs.writeFile() -
fs.appendFile() -
fs.writeFileSync() -
fs.appendFileSync()
作为字符串 coercion 的替代选择,将对象转换为原语字符串。
2.2.2. dns.lookup 和 dnsPromises.lookup 方法中的选项类型 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 () 作为替代方案。