Node.js v21.7.2 ドキュメント
- Node.js v21.7.2
-
► 目次
- 非推奨API
- 非推奨の廃止
- 非推奨API一覧
- DEP0001: `http.OutgoingMessage.prototype.flush`
- DEP0002: `require('_linklist')`
- DEP0003: `_writableState.buffer`
- DEP0004: `CryptoStream.prototype.readyState`
- DEP0005: `Buffer()` コンストラクタ
- DEP0006: `child_process` `options.customFds`
- DEP0007: `cluster` `worker.suicide` を `worker.exitedAfterDisconnect` に置き換える
- DEP0008: `require('node:constants')`
- DEP0009: ダイジェストなしの `crypto.pbkdf2`
- DEP0010: `crypto.createCredentials`
- DEP0011: `crypto.Credentials`
- DEP0012: `Domain.dispose`
- DEP0013: コールバックなしの `fs` 非同期関数
- DEP0014: 従来の文字列インターフェース `fs.read`
- DEP0015: 従来の文字列インターフェース `fs.readSync`
- DEP0016: `GLOBAL`/`root`
- DEP0017: `Intl.v8BreakIterator`
- DEP0018: 未処理のPromise拒否
- DEP0019: ディレクトリ外で解決された `require('.')`
- DEP0020: `Server.connections`
- DEP0021: `Server.listenFD`
- DEP0022: `os.tmpDir()`
- DEP0023: `os.getNetworkInterfaces()`
- DEP0024: `REPLServer.prototype.convertToContext()`
- DEP0025: `require('node:sys')`
- DEP0026: `util.print()`
- DEP0027: `util.puts()`
- DEP0028: `util.debug()`
- DEP0029: `util.error()`
- DEP0030: `SlowBuffer`
- DEP0031: `ecdh.setPublicKey()`
- DEP0032: `node:domain` モジュール
- DEP0033: `EventEmitter.listenerCount()`
- DEP0034: `fs.exists(path, callback)`
- DEP0035: `fs.lchmod(path, mode, callback)`
- DEP0036: `fs.lchmodSync(path, mode)`
- DEP0037: `fs.lchown(path, uid, gid, callback)`
- DEP0038: `fs.lchownSync(path, uid, gid)`
- DEP0039: `require.extensions`
- DEP0040: `node:punycode` モジュール
- DEP0041: 環境変数 `NODE_REPL_HISTORY_FILE`
- DEP0042: `tls.CryptoStream`
- DEP0043: `tls.SecurePair`
- DEP0044: `util.isArray()`
- DEP0045: `util.isBoolean()`
- DEP0046: `util.isBuffer()`
- DEP0047: `util.isDate()`
- DEP0048: `util.isError()`
- DEP0049: `util.isFunction()`
- DEP0050: `util.isNull()`
- DEP0051: `util.isNullOrUndefined()`
- DEP0052: `util.isNumber()`
- DEP0053: `util.isObject()`
- DEP0054: `util.isPrimitive()`
- DEP0055: `util.isRegExp()`
- DEP0056: `util.isString()`
- DEP0057: `util.isSymbol()`
- DEP0058: `util.isUndefined()`
- DEP0059: `util.log()`
- DEP0060: `util._extend()`
- DEP0061: `fs.SyncWriteStream`
- DEP0062: `node --debug`
- DEP0063: `ServerResponse.prototype.writeHeader()`
- DEP0064: `tls.createSecurePair()`
- DEP0065: `repl.REPL_MODE_MAGIC` と `NODE_REPL_MODE=magic`
- DEP0066: `OutgoingMessage.prototype._headers`, `OutgoingMessage.prototype._headerNames`
- DEP0067: `OutgoingMessage.prototype._renderHeaders`
- DEP0068: `node debug`
- DEP0069: `vm.runInDebugContext(string)`
- DEP0070: `async_hooks.currentId()`
- DEP0071: `async_hooks.triggerId()`
- DEP0072: `async_hooks.AsyncResource.triggerId()`
- DEP0073: `net.Server` のいくつかの内部プロパティ
- DEP0074: `REPLServer.bufferedCommand`
- DEP0075: `REPLServer.parseREPLKeyword()`
- DEP0076: `tls.parseCertString()`
- DEP0077: `Module._debug()`
- DEP0078: `REPLServer.turnOffEditorMode()`
- DEP0079: `.inspect()` を介したオブジェクトのカスタムインスペクション関数
- DEP0080: `path._makeLong()`
- DEP0081: ファイル記述子を使用した `fs.truncate()`
- DEP0082: `REPLServer.prototype.memory()`
- DEP0083: `ecdhCurve` を `false` に設定することでECDHを無効にすること
- DEP0084: バンドルされた内部依存関係のrequire
- DEP0085: AsyncHooks セキュリティに敏感なAPI
- DEP0086: `runInAsyncIdScope`の削除
- DEP0089: `require('node:assert')`
- DEP0090: 無効なGCM認証タグの長さ
- DEP0091: `crypto.DEFAULT_ENCODING`
- DEP0092: `module.exports` にバインドされた最上位レベルの `this`
- DEP0093: `crypto.fips` は非推奨となり、置き換えられました
- DEP0094: 複数の引数を使用した `assert.fail()`
- DEP0095: `timers.enroll()`
- DEP0096: `timers.unenroll()`
- DEP0097: `domain` プロパティを持つ `MakeCallback`
- DEP0098: AsyncHooks エンベダー `AsyncResource.emitBefore` と `AsyncResource.emitAfter` API
- DEP0099: Asyncコンテキスト非対応の `node::MakeCallback` C++ API
- DEP0100: `process.assert()`
- DEP0101: `--with-lttng`
- DEP0102: `Buffer#(read|write)` 操作での `noAssert` の使用
- DEP0103: `process.binding('util').is[...]` 型チェック
- DEP0104: `process.env` 文字列強制変換
- DEP0105: `decipher.finaltol`
- DEP0106: `crypto.createCipher` と `crypto.createDecipher`
- DEP0107: `tls.convertNPNProtocols()`
- DEP0108: `zlib.bytesRead`
- DEP0109: 無効なURLに対する`http`、`https`、`tls` のサポート
- DEP0110: `vm.Script` キャッシュデータ
- DEP0111: `process.binding()`
- DEP0112: `dgram` プライベートAPI
- DEP0113: `Cipher.setAuthTag()`、`Decipher.getAuthTag()`
- DEP0114: `crypto._toBuf()`
- DEP0115: `crypto.prng()`、`crypto.pseudoRandomBytes()`、`crypto.rng()`
- DEP0116: 従来のURL API
- DEP0117: ネイティブ暗号ハンドル
- DEP0118: 偽のホスト名に対する `dns.lookup()` のサポート
- DEP0119: プライベートAPI `process.binding('uv').errname()`
- DEP0120: Windows パフォーマンスカウンターのサポート
- DEP0121: `net._setSimultaneousAccepts()`
- DEP0122: `tls` `Server.prototype.setOptions()`
- DEP0123: TLS ServerName をIPアドレスに設定すること
- DEP0124: `REPLServer.rli` の使用
- DEP0125: `require('node:_stream_wrap')`
- DEP0126: `timers.active()`
- DEP0127: `timers._unrefActive()`
- DEP0128: 無効な `main` エントリと `index.js` ファイルを持つモジュール
- DEP0129: `ChildProcess._channel`
- DEP0130: `Module.createRequireFromPath()`
- DEP0131: 従来のHTTPパーサー
- DEP0132: コールバック付き `worker.terminate()`
- DEP0133: `http` `connection`
- DEP0134: `process._tickCallback`
- DEP0135: `WriteStream.open()` と `ReadStream.open()` は内部関数です
- DEP0136: `http` `finished`
- DEP0137: ガベージコレクション時の `fs.FileHandle` のクローズ
- DEP0138: `process.mainModule`
- DEP0139: 引数なしの `process.umask()`
- DEP0140: `request.abort()` の代わりに `request.destroy()` を使用する
- DEP0141: `repl.inputStream` と `repl.outputStream`
- DEP0142: `repl._builtinLibs`
- DEP0143: `Transform._transformState`
- DEP0144: `module.parent`
- DEP0145: `socket.bufferSize`
- DEP0146: `new crypto.Certificate()`
- DEP0147: `fs.rmdir(path, { recursive: true })`
- DEP0148: `"exports"` 内のフォルダーマッピング (末尾の `/`)
- DEP0149: `http.IncomingMessage#connection`
- DEP0150: `process.config` の値の変更
- DEP0151: メインインデックスの検索と拡張子の検索
- DEP0152: 拡張PerformanceEntryプロパティ
- DEP0153: `dns.lookup` と `dnsPromises.lookup` オプションの型強制変換
- DEP0154: RSA-PSS キーペア生成オプション
- DEP0155: パターン指定子の解決における末尾のスラッシュ
- DEP0156: `http` 内の `.aborted` プロパティと `'abort'`、`'aborted'` イベント
- DEP0157: ストリームにおけるThenableサポート
- DEP0158: `buffer.slice(start, end)`
- DEP0159: `ERR_INVALID_CALLBACK`
- DEP0160: `process.on('multipleResolves', handler)`
- DEP0161: `process._getActiveRequests()` と `process._getActiveHandles()`
- DEP0162: `fs.write()`、`fs.writeFileSync()` の文字列への強制変換
- DEP0163: `channel.subscribe(onMessage)`、`channel.unsubscribe(onMessage)`
- DEP0164: `process.exit(code)`、`process.exitCode` の整数への強制変換
- DEP0165: `--trace-atomics-wait`
- DEP0166: インポートとエクスポートターゲットにおける二重スラッシュ
- DEP0167: 弱い `DiffieHellmanGroup` インスタンス (`modp1`、`modp2`、`modp5`)
- DEP0168: Node-API コールバックでの未処理の例外
- DEP0169: セキュリティ上の問題のある url.parse()
- DEP0170: `url.parse()` を使用した際の無効なポート
- DEP0171: `http.IncomingMessage` ヘッダーとトレーラーのセッター
- DEP0172: バインド関数の `AsyncResource` の `asyncResource` プロパティ
- DEP0173: `assert.CallTracker` クラス
- DEP0174: `Promise` を返す関数に対する `promisify` の呼び出し
- DEP0175: `util.toUSVString`
- DEP0176: `fs.F_OK`、`fs.R_OK`、`fs.W_OK`、`fs.X_OK`
- DEP0177: `util.types.isWebAssemblyCompiledModule`
- DEP0178: `dirent.path`
- DEP0179: `Hash` コンストラクタ
- 非推奨API
-
► インデックス
- アサーションテスト
- 非同期コンテキスト追跡
- Async Hooks
- Buffer
- C++ アドオン
- Node-API を使用した C/C++ アドオン
- C++ エンベダーAPI
- 子プロセス
- Cluster
- コマンドラインオプション
- Console
- Corepack
- Crypto
- デバッガー
- 非推奨API
- Diagnostics Channel
- DNS
- Domain
- エラー
- イベント
- ファイルシステム
- グローバルオブジェクト
- HTTP
- HTTP/2
- HTTPS
- Inspector
- 国際化
- モジュール: CommonJS モジュール
- モジュール: ECMAScript モジュール
- モジュール: `node:module` API
- モジュール: パッケージ
- Net
- OS
- Path
- パフォーマンスフック
- パーミッション
- Process
- Punycode
- クエリ文字列
- Readline
- REPL
- Report
- 単一実行ファイルアプリケーション
- Stream
- 文字列デコーダー
- テストランナー
- タイマー
- TLS/SSL
- トレースイベント
- TTY
- UDP/データグラム
- URL
- ユーティリティ
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- ワーカー スレッド
- Zlib
- ► その他のバージョン
- ► オプション
非推奨API#
Node.js APIは、以下のいずれかの理由で非推奨となる場合があります。
- APIの使用が安全ではありません。
- 改良された代替APIが利用可能です。
- 将来のメジャーリリースでAPIに破壊的な変更が加わる予定です。
Node.jsでは4種類の非推奨を使用しています。
- ドキュメントのみ
- アプリケーション(`node_modules` 以外のコードのみ)
- ランタイム(すべてのコード)
- サポート終了
ドキュメントのみの非推奨化は、Node.js の API ドキュメント内でのみ表現されるものです。これらは、Node.js を実行中に副作用を生じません。一部のドキュメントのみの非推奨化は、--pending-deprecation
フラグ(または代替の NODE_PENDING_DEPRECATION=1
環境変数)を使用して起動した場合、下記のランタイム非推奨化と同様に、ランタイム警告をトリガーします。そのフラグをサポートするドキュメントのみの非推奨化は、非推奨 API のリストで明示的にそうラベル付けされています。
node_modules
以外のコードのみを対象とするアプリケーションの非推奨化は、デフォルトで、node_modules
からロードされていないコードで非推奨 API が初めて使用されたときに、stderr
に出力されるプロセス警告を生成します。--throw-deprecation
コマンドラインフラグを使用すると、ランタイム非推奨化によってエラーがスローされます。--pending-deprecation
を使用すると、node_modules
からロードされたコードに対しても警告が出力されます。
すべてのコードに対するランタイム非推奨化は、node_modules
以外のコードに対するランタイム非推奨化と似ていますが、node_modules
からロードされたコードに対しても警告を出力する点が異なります。
ライフサイクル終了の非推奨化は、Node.js から機能が削除された場合、またはすぐに削除される場合に使用されます。
非推奨化の取り消し#
API の非推奨化が取り消される場合があります。そのような場合、このドキュメントは、その決定に関連する情報で更新されます。ただし、非推奨識別子は変更されません。
非推奨 API のリスト#
DEP0001: http.OutgoingMessage.prototype.flush
#
タイプ: ライフサイクル終了
OutgoingMessage.prototype.flush()
は削除されました。代わりに OutgoingMessage.prototype.flushHeaders()
を使用してください。
DEP0002: require('_linklist')
#
タイプ: ライフサイクル終了
_linklist
モジュールは非推奨です。ユーザーランドの代替手段を使用してください。
DEP0003: _writableState.buffer
#
タイプ: ライフサイクル終了
_writableState.buffer
は削除されました。代わりに _writableState.getBuffer()
を使用してください。
DEP0004: CryptoStream.prototype.readyState
#
タイプ: ライフサイクル終了
CryptoStream.prototype.readyState
プロパティは削除されました。
DEP0005: Buffer()
コンストラクタ#
タイプ: アプリケーション(node_modules
以外のコードのみ)
API の使いやすさの問題により、偶発的なセキュリティ問題につながる可能性があるため、Buffer()
関数と new Buffer()
コンストラクタは非推奨になりました。
代替として、次のいずれかの方法を使用して Buffer
オブジェクトを作成してください。
Buffer.alloc(size[, fill[, encoding]])
:初期化されたメモリを持つBuffer
を作成します。Buffer.allocUnsafe(size)
:初期化されていないメモリを持つBuffer
を作成します。Buffer.allocUnsafeSlow(size)
:初期化されていないメモリを持つBuffer
を作成します。Buffer.from(array)
:array
のコピーを持つBuffer
を作成します。Buffer.from(arrayBuffer[, byteOffset[, length]])
- 指定されたarrayBuffer
をラップするBuffer
を作成します。Buffer.from(buffer)
:buffer
をコピーしたBuffer
を作成します。Buffer.from(string[, encoding])
:string
をコピーしたBuffer
を作成します。
--pending-deprecation
を使用しない場合、ランタイム警告は node_modules
にないコードに対してのみ発生します。つまり、依存関係での Buffer()
の使用に関する非推奨警告は発生しません。--pending-deprecation
を使用すると、Buffer()
の使用場所に関わらず、ランタイム警告が発生します。
DEP0006: child_process
options.customFds
#
タイプ: ライフサイクル終了
child_process
モジュールの spawn()
、fork()
、exec()
メソッドでは、options.customFds
オプションは非推奨です。代わりに options.stdio
オプションを使用してください。
DEP0007: cluster
worker.suicide
を worker.exitedAfterDisconnect
に置き換える#
タイプ: ライフサイクル終了
以前のバージョンの Node.js cluster
では、suicide
という名前のブール型のプロパティが Worker
オブジェクトに追加されました。このプロパティの目的は、Worker
インスタンスがどのように、なぜ終了したのかを示すことでした。Node.js 6.0.0 では、古いプロパティは非推奨になり、新しいworker.exitedAfterDisconnect
プロパティに置き換えられました。古いプロパティ名は、実際のセマンティクスを正確に記述しておらず、不必要に感情的な言葉遣いでした。
DEP0008: require('node:constants')
#
タイプ: ドキュメントのみ
node:constants
モジュールは非推奨です。特定の Node.js 組み込みモジュールに関連する定数へのアクセスを要求する場合は、代わりに関連するモジュールによって公開されている constants
プロパティを参照してください。たとえば、require('node:fs').constants
と require('node:os').constants
です。
DEP0009: ダイジェストなしの crypto.pbkdf2
#
タイプ: ライフサイクル終了
ダイジェストを指定せずに crypto.pbkdf2()
API を使用することは、Node.js 6.0 で非推奨になりました。これは、このメソッドが推奨されない 'SHA1'
ダイジェストを使用することをデフォルトとしていたためです。以前は、非推奨警告が出力されていました。Node.js 8.0.0 以降、digest
を undefined
に設定して crypto.pbkdf2()
または crypto.pbkdf2Sync()
を呼び出すと、TypeError
がスローされます。
Node.js v11.0.0 以降、digest
を null
に設定してこれらの関数を呼び出すと、digest
が undefined
の場合の動作に合わせて非推奨警告が出力されるようになりました。
ただし、現在は、undefined
または null
のどちらを渡しても TypeError
がスローされます。
DEP0010: crypto.createCredentials
#
タイプ: ライフサイクル終了
crypto.createCredentials()
API は削除されました。代わりに tls.createSecureContext()
を使用してください。
DEP0011: crypto.Credentials
#
タイプ: ライフサイクル終了
crypto.Credentials
クラスは削除されました。代わりに tls.SecureContext
を使用してください。
DEP0012: Domain.dispose
#
タイプ: ライフサイクル終了
Domain.dispose()
は削除されました。代わりに、ドメインに設定されたエラーイベントハンドラを使用して、失敗した I/O アクションから明示的に復旧してください。
DEP0013: コールバックなしの非同期関数 fs
#
タイプ: ライフサイクル終了
Node.js 10.0.0 以降、コールバックなしで非同期関数を呼び出すと TypeError
がスローされます。https://github.com/nodejs/node/pull/12562 を参照してください。
DEP0014: 従来の文字列インターフェース fs.read
#
タイプ: ライフサイクル終了
fs.read()
の従来の String
インターフェースは非推奨です。代わりに、ドキュメントに記載されている Buffer
API を使用してください。
DEP0015: 従来の文字列インターフェース fs.readSync
#
タイプ: ライフサイクル終了
fs.readSync()
の従来の String
インターフェースは非推奨です。代わりに、ドキュメントに記載されている Buffer
API を使用してください。
DEP0016: GLOBAL
/root
#
タイプ: ライフサイクル終了
global
プロパティに対する GLOBAL
と root
のエイリアスは、Node.js 6.0.0 で非推奨になり、その後削除されました。
DEP0017: Intl.v8BreakIterator
#
タイプ: ライフサイクル終了
Intl.v8BreakIterator
は非標準の拡張機能であり、削除されました。Intl.Segmenter
を参照してください。
DEP0018: 未処理の Promise の拒否#
タイプ: ライフサイクル終了
未処理のPromise拒否は非推奨になりました。デフォルトでは、処理されないPromise拒否は、Node.jsプロセスをゼロ以外の終了コードで終了させます。Node.jsが未処理の拒否を扱う方法を変更するには、--unhandled-rejections
コマンドラインオプションを使用してください。
DEP0019: ディレクトリ外で解決されたrequire('.')
#
タイプ: ライフサイクル終了
特定のケースにおいて、require('.')
はパッケージディレクトリ外で解決される可能性がありました。この動作は削除されました。
DEP0020: Server.connections
#
タイプ: ライフサイクル終了
Server.connections
プロパティはNode.js v0.9.7で非推奨となり、削除されました。Server.getConnections()
メソッドを代わりに使用してください。
DEP0021: Server.listenFD
#
タイプ: ライフサイクル終了
Server.listenFD()
メソッドは非推奨となり、削除されました。Server.listen({fd: <number>})
を代わりに使用してください。
DEP0022: os.tmpDir()
#
タイプ: ライフサイクル終了
os.tmpDir()
APIはNode.js 7.0.0で非推奨となり、削除されました。os.tmpdir()
を代わりに使用してください。
DEP0023: os.getNetworkInterfaces()
#
タイプ: ライフサイクル終了
os.getNetworkInterfaces()
メソッドは非推奨です。os.networkInterfaces()
メソッドを代わりに使用してください。
DEP0024: REPLServer.prototype.convertToContext()
#
タイプ: ライフサイクル終了
REPLServer.prototype.convertToContext()
APIは削除されました。
DEP0025: require('node:sys')
#
タイプ: ランタイム
node:sys
モジュールは非推奨です。util
モジュールを代わりに使用してください。
DEP0026: util.print()
#
タイプ: ライフサイクル終了
util.print()
は削除されました。console.log()
を代わりに使用してください。
DEP0027: util.puts()
#
タイプ: ライフサイクル終了
util.puts()
は削除されました。console.log()
を代わりに使用してください。
DEP0028: util.debug()
#
タイプ: ライフサイクル終了
util.debug()
は削除されました。console.error()
を代わりに使用してください。
DEP0029: util.error()
#
タイプ: ライフサイクル終了
util.error()
は削除されました。console.error()
を代わりに使用してください。
DEP0030: SlowBuffer
#
タイプ: ドキュメントのみ
SlowBuffer
クラスは非推奨です。Buffer.allocUnsafeSlow(size)
を代わりに使用してください。
DEP0031: ecdh.setPublicKey()
#
タイプ: ドキュメントのみ
ecdh.setPublicKey()
メソッドは、APIへの組み込みが役に立たないため、非推奨になりました。
DEP0032: node:domain
モジュール#
タイプ: ドキュメントのみ
domain
モジュールは非推奨であり、使用しないでください。
DEP0033: EventEmitter.listenerCount()
#
タイプ: ドキュメントのみ
events.listenerCount(emitter, eventName)
APIは非推奨です。emitter.listenerCount(eventName)
を代わりに使用してください。
DEP0034: fs.exists(path, callback)
#
タイプ: ドキュメントのみ
fs.exists(path, callback)
APIは非推奨です。fs.stat()
またはfs.access()
を代わりに使用してください。
DEP0035: fs.lchmod(path, mode, callback)
#
タイプ: ドキュメントのみ
fs.lchmod(path, mode, callback)
APIは非推奨です。
DEP0036: fs.lchmodSync(path, mode)
#
タイプ: ドキュメントのみ
fs.lchmodSync(path, mode)
APIは非推奨です。
DEP0037: fs.lchown(path, uid, gid, callback)
#
タイプ: 非推奨の取り消し
fs.lchown(path, uid, gid, callback)
APIは非推奨でしたが、libuvに必要なサポートAPIが追加されたため、非推奨は取り消されました。
DEP0038: fs.lchownSync(path, uid, gid)
#
タイプ: 非推奨の取り消し
fs.lchownSync(path, uid, gid)
APIは非推奨でしたが、libuvに必要なサポートAPIが追加されたため、非推奨は取り消されました。
DEP0039: require.extensions
#
タイプ: ドキュメントのみ
require.extensions
プロパティは非推奨です。
DEP0040: node:punycode
モジュール#
タイプ: ランタイム
punycode
モジュールは非推奨です。代わりにユーザランドの代替手段を使用してください。
DEP0041: NODE_REPL_HISTORY_FILE
環境変数#
タイプ: ライフサイクル終了
NODE_REPL_HISTORY_FILE
環境変数は削除されました。代わりにNODE_REPL_HISTORY
を使用してください。
DEP0042: tls.CryptoStream
#
タイプ: ライフサイクル終了
tls.CryptoStream
クラスは削除されました。tls.TLSSocket
を代わりに使用してください。
DEP0043: tls.SecurePair
#
タイプ: ドキュメントのみ
tls.SecurePair
クラスは非推奨です。tls.TLSSocket
を代わりに使用してください。
DEP0044: util.isArray()
#
タイプ: ドキュメントのみ
util.isArray()
APIは非推奨です。代わりにArray.isArray()
を使用してください。
DEP0045: util.isBoolean()
#
タイプ: ドキュメントのみ
util.isBoolean()
APIは非推奨です。
DEP0046: util.isBuffer()
#
タイプ: ドキュメントのみ
util.isBuffer()
APIは非推奨です。Buffer.isBuffer()
を代わりに使用してください。
DEP0047: util.isDate()
#
タイプ: ドキュメントのみ
util.isDate()
APIは非推奨です。
DEP0048: util.isError()
#
タイプ: ドキュメントのみ
util.isError()
APIは非推奨です。
DEP0049: util.isFunction()
#
タイプ: ドキュメントのみ
util.isFunction()
APIは非推奨です。
DEP0050: util.isNull()
#
タイプ: ドキュメントのみ
util.isNull()
APIは非推奨です。
DEP0051: util.isNullOrUndefined()
#
タイプ: ドキュメントのみ
util.isNullOrUndefined()
APIは非推奨です。
DEP0052: util.isNumber()
#
タイプ: ドキュメントのみ
util.isNumber()
APIは非推奨です。
DEP0053: util.isObject()
#
タイプ: ドキュメントのみ
util.isObject()
APIは非推奨です。
DEP0054: util.isPrimitive()
#
タイプ: ドキュメントのみ
util.isPrimitive()
APIは非推奨です。
DEP0055: util.isRegExp()
#
タイプ: ドキュメントのみ
util.isRegExp()
APIは非推奨です。
DEP0056: util.isString()
#
タイプ: ドキュメントのみ
util.isString()
APIは非推奨です。
DEP0057: util.isSymbol()
#
タイプ: ドキュメントのみ
util.isSymbol()
APIは非推奨です。
DEP0058: util.isUndefined()
#
タイプ: ドキュメントのみ
util.isUndefined()
APIは非推奨です。
DEP0059: util.log()
#
タイプ: ドキュメントのみ
util.log()
APIは非推奨です。
DEP0060: util._extend()
#
タイプ: ドキュメントのみ
util._extend()
APIは非推奨です。
DEP0061: fs.SyncWriteStream
#
タイプ: ライフサイクル終了
fs.SyncWriteStream
クラスは、公開可能なAPIとして意図されておらず、削除されました。代替APIはありません。ユーザランドの代替手段を使用してください。
DEP0062: node --debug
#
タイプ: ライフサイクル終了
--debug
はレガシーなV8デバッガインターフェースを有効化しますが、V8 5.8以降で削除されました。代わりに--inspect
を使用して有効化するInspectorに置き換えられています。
DEP0063: ServerResponse.prototype.writeHeader()
#
タイプ: ドキュメントのみ
node:http
モジュールのServerResponse.prototype.writeHeader()
APIは非推奨です。代わりにServerResponse.prototype.writeHead()
を使用してください。
ServerResponse.prototype.writeHeader()
メソッドは、公式にサポートされているAPIとしてドキュメントに記載されたことはありませんでした。
DEP0064: tls.createSecurePair()
#
タイプ: ランタイム
tls.createSecurePair()
APIは、Node.js 0.11.3のドキュメントで非推奨とされました。代わりにtls.Socket
を使用する必要があります。
DEP0065: repl.REPL_MODE_MAGIC
とNODE_REPL_MODE=magic
#
タイプ: ライフサイクル終了
node:repl
モジュールのreplMode
オプションで使用されるREPL_MODE_MAGIC
定数は削除されました。その動作は、V8 5.0がインポートされたNode.js 6.0.0以降、REPL_MODE_SLOPPY
と機能的に同一でした。代わりにREPL_MODE_SLOPPY
を使用してください。
NODE_REPL_MODE
環境変数は、対話型node
セッションの基礎となるreplMode
を設定するために使用されます。その値であるmagic
も削除されました。代わりにsloppy
を使用してください。
DEP0066: OutgoingMessage.prototype._headers
, OutgoingMessage.prototype._headerNames
#
タイプ: ランタイム
node:http
モジュールのOutgoingMessage.prototype._headers
とOutgoingMessage.prototype._headerNames
プロパティは非推奨です。アウトゴーイングヘッダーを操作するには、公開されているメソッド(例:OutgoingMessage.prototype.getHeader()
、OutgoingMessage.prototype.getHeaders()
、OutgoingMessage.prototype.getHeaderNames()
、OutgoingMessage.prototype.getRawHeaderNames()
、OutgoingMessage.prototype.hasHeader()
、OutgoingMessage.prototype.removeHeader()
、OutgoingMessage.prototype.setHeader()
)のいずれかを使用してください。
OutgoingMessage.prototype._headers
とOutgoingMessage.prototype._headerNames
プロパティは、公式にサポートされているプロパティとしてドキュメントに記載されたことはありませんでした。
DEP0067: OutgoingMessage.prototype._renderHeaders
#
タイプ: ドキュメントのみ
node:http
モジュールのOutgoingMessage.prototype._renderHeaders()
APIは非推奨です。
OutgoingMessage.prototype._renderHeaders
プロパティは、公式にサポートされているAPIとしてドキュメントに記載されたことはありませんでした。
DEP0068: node debug
#
タイプ: ライフサイクル終了
node debug
はレガシーなCLIデバッガに対応しており、node inspect
で利用可能なV8インスペクタベースのCLIデバッガに置き換えられました。
DEP0069: vm.runInDebugContext(string)
#
タイプ: ライフサイクル終了
DebugContextはV8で削除され、Node.js 10以降では利用できません。
DebugContextは実験的なAPIでした。
DEP0070: async_hooks.currentId()
#
タイプ: ライフサイクル終了
async_hooks.currentId()
は、明確にするためにasync_hooks.executionAsyncId()
に名前変更されました。
この変更は、async_hooks
が実験的なAPIである間に加えられました。
DEP0071: async_hooks.triggerId()
#
タイプ: ライフサイクル終了
async_hooks.triggerId()
は、明確にするためにasync_hooks.triggerAsyncId()
に名前変更されました。
この変更は、async_hooks
が実験的なAPIである間に加えられました。
DEP0072: async_hooks.AsyncResource.triggerId()
#
タイプ: ライフサイクル終了
async_hooks.AsyncResource.triggerId()
は、明確にするためにasync_hooks.AsyncResource.triggerAsyncId()
に名前変更されました。
この変更は、async_hooks
が実験的なAPIである間に加えられました。
DEP0073: net.Server
のいくつかの内部プロパティ#
タイプ: ライフサイクル終了
不適切な名前を持つnet.Server
インスタンスのいくつかの内部の、ドキュメント化されていないプロパティへのアクセスは非推奨です。
元のAPIはドキュメント化されておらず、内部コード以外のコードには一般的に有用ではなかったため、代替APIは提供されていません。
DEP0074: REPLServer.bufferedCommand
#
タイプ: ライフサイクル終了
REPLServer.bufferedCommand
プロパティは、REPLServer.clearBufferedCommand()
に置き換えられました。
DEP0075: REPLServer.parseREPLKeyword()
#
タイプ: ライフサイクル終了
REPLServer.parseREPLKeyword()
は、ユーザーランドからのアクセスが削除されました。
DEP0076: tls.parseCertString()
#
タイプ: ライフサイクル終了
tls.parseCertString()
は些細な解析ヘルパーであり、誤って公開されました。証明書のサブジェクトと発行者文字列を解析することになっていましたが、複数値の相対識別名(Relative Distinguished Name)を正しく処理したことはありませんでした。
このドキュメントの以前のバージョンでは、tls.parseCertString()
の代替としてquerystring.parse()
を使用することを提案していました。しかし、querystring.parse()
もすべての証明書のサブジェクトを正しく処理するわけではないため、使用しないでください。
DEP0077: Module._debug()
#
タイプ: ランタイム
Module._debug()
は非推奨です。
Module._debug()
関数は、公式にサポートされているAPIとしてドキュメントに記載されたことはありませんでした。
DEP0078: REPLServer.turnOffEditorMode()
#
タイプ: ライフサイクル終了
REPLServer.turnOffEditorMode()
は、ユーザーランドからのアクセスが削除されました。
DEP0079: .inspect()
によるオブジェクトのカスタム検査関数#
タイプ: ライフサイクル終了
util.inspect()
のカスタム検査関数を指定するために、オブジェクトのプロパティ名inspect
を使用することは非推奨です。util.inspect.custom
を使用してください。バージョン6.4.0より前のNode.jsとの下位互換性のために、両方を指定できます。
DEP0080: path._makeLong()
#
タイプ: ドキュメントのみ
内部のpath._makeLong()
は、公開用を意図したものではありませんでした。しかし、ユーザーランドモジュールはそれを有用であると考えていました。内部APIは非推奨となり、同一の公開path.toNamespacedPath()
メソッドに置き換えられました。
DEP0081: ファイルディスクリプタを使用するfs.truncate()
#
タイプ: ランタイム
ファイルディスクリプタを使用したfs.truncate()
、fs.truncateSync()
の使用は非推奨です。ファイルディスクリプタを操作するには、fs.ftruncate()
またはfs.ftruncateSync()
を使用してください。
DEP0082: REPLServer.prototype.memory()
#
タイプ: ライフサイクル終了
REPLServer.prototype.memory()
は、REPLServer
自体の内部メカニズムにのみ必要です。この関数は使用しないでください。
DEP0083: ecdhCurve
をfalse
に設定してECDHを無効化#
タイプ:終息。
tls.createSecureContext()
とtls.TLSSocket
のecdhCurve
オプションは、サーバーでのみECDHを完全に無効にするためにfalse
に設定できました。このモードは、OpenSSL 1.1.0への移行とクライアントとの一貫性を図る準備として非推奨となり、現在はサポートされていません。代わりにciphers
パラメーターを使用してください。
DEP0084: バンドルされた内部依存関係のrequire#
タイプ: ライフサイクル終了
Node.jsバージョン4.4.0と5.2.0以降、内部使用のみを目的としたいくつかのモジュールが、require()
を通じてユーザーコードに誤って公開されました。これらのモジュールは
v8/tools/codemap
v8/tools/consarray
v8/tools/csvparser
v8/tools/logreader
v8/tools/profile_view
v8/tools/profile
v8/tools/SourceMap
v8/tools/splaytree
v8/tools/tickprocessor-driver
v8/tools/tickprocessor
node-inspect/lib/_inspect
(7.6.0以降)node-inspect/lib/internal/inspect_client
(7.6.0以降)node-inspect/lib/internal/inspect_repl
(7.6.0以降)
v8/*
モジュールにはエクスポートがなく、特定の順序でインポートしないとエラーが発生します。そのため、require()
を通じてインポートする正当なユースケースは事実上ありません。
一方、node-inspect
は、同じ名前でnpmレジストリに公開されているため、パッケージマネージャーを使用してローカルにインストールできます。そうすれば、ソースコードを変更する必要はありません。
DEP0085: AsyncHooksの機密性の高いAPI#
タイプ: ライフサイクル終了
AsyncHooksの機密性の高いAPIは、ドキュメント化されておらず、さまざまな軽微な問題がありました。代わりにAsyncResource
APIを使用してください。https://github.com/nodejs/node/issues/15572を参照してください。
DEP0086: runInAsyncIdScope
の削除#
タイプ: ライフサイクル終了
runInAsyncIdScope
は'before'
または'after'
イベントを発行せず、多くの問題を引き起こす可能性があります。https://github.com/nodejs/node/issues/14328を参照してください。
DEP0089: require('node:assert')
#
タイプ: 非推奨の取り消し
assert
を直接インポートすることは、公開されている関数が緩やかな等価性チェックを使用しているため推奨されませんでした。node:assert
モジュールの使用は推奨されているため、非推奨化は取り消されました。非推奨化により開発者の混乱が生じていたためです。
DEP0090: 無効な GCM 認証タグの長さ#
タイプ: ライフサイクル終了
Node.js は、decipher.setAuthTag()
を呼び出す際に OpenSSL が受け入れるすべての GCM 認証タグの長さをサポートしていました。Node.js v11.0.0 以降、128、120、112、104、96、64、32 ビットの認証タグの長さのみが許可されます。それ以外の長さの認証タグは、NIST SP 800-38D に従って無効です。
DEP0091: crypto.DEFAULT_ENCODING
#
タイプ: ライフサイクル終了
crypto.DEFAULT_ENCODING
プロパティは、Node.js 0.9.3 より前のバージョンとの互換性のためにのみ存在し、削除されました。
DEP0092: トップレベルの this
が module.exports
にバインドされている#
タイプ: ドキュメントのみ
module.exports
の代わりにトップレベルの this
にプロパティを代入することは非推奨です。代わりに exports
または module.exports
を使用してください。
DEP0093: crypto.fips
は非推奨となり、置き換えられました#
タイプ: ドキュメントのみ
crypto.fips
プロパティは非推奨です。代わりに crypto.setFips()
と crypto.getFips()
を使用してください。
DEP0094: 複数の引数で assert.fail()
を使用している#
タイプ: ランタイム
複数の引数で assert.fail()
を使用することは非推奨です。引数を1つだけ使用するか、別の node:assert
モジュールメソッドを使用してください。
DEP0095: timers.enroll()
#
タイプ: ランタイム
timers.enroll()
は非推奨です。公開されているドキュメントにある setTimeout()
または setInterval()
を使用してください。
DEP0096: timers.unenroll()
#
タイプ: ランタイム
timers.unenroll()
は非推奨です。公開されているドキュメントにある clearTimeout()
または clearInterval()
を使用してください。
DEP0097: domain
プロパティを持つ MakeCallback
#
タイプ: ランタイム
コンテキストを保持するために domain
プロパティを追加する MakeCallback
のユーザーは、MakeCallback
または CallbackScope
の async_context
バリアント、または高レベルの AsyncResource
クラスを使用する必要があります。
DEP0098: AsyncHooks エンベッダー AsyncResource.emitBefore
と AsyncResource.emitAfter
API#
タイプ: ライフサイクル終了
AsyncHooks によって提供される埋め込み API は、.emitBefore()
と .emitAfter()
メソッドを公開していますが、これらは誤って使用されやすく、回復不可能なエラーにつながる可能性があります。
代わりに、より安全で便利な代替手段である asyncResource.runInAsyncScope()
API を使用してください。https://github.com/nodejs/node/pull/18513 を参照してください。
DEP0099: Async コンテキスト非対応の node::MakeCallback
C++ API#
種類: コンパイル時
ネイティブアドオンで使用可能な node::MakeCallback
API の特定のバージョンは非推奨です。async_context
パラメーターを受け入れる API のバージョンを使用してください。
DEP0100: process.assert()
#
タイプ: ランタイム
process.assert()
は非推奨です。assert
モジュールを使用してください。
これはドキュメント化された機能ではありませんでした。
DEP0101: --with-lttng
#
タイプ: ライフサイクル終了
--with-lttng
コンパイル時オプションは削除されました。
DEP0102: Buffer#(read|write)
操作での noAssert
の使用#
タイプ: ライフサイクル終了
noAssert
引数は機能しなくなりました。noAssert
の値に関係なく、すべての入力が検証されます。検証をスキップすると、見つけにくいエラーやクラッシュが発生する可能性があります。
DEP0103: process.binding('util').is[...]
型チェック#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
一般的に process.binding()
は避けるべきです。特に型チェックメソッドは、util.types
を使用して置き換えることができます。
この非推奨化は、process.binding()
API の非推奨化(DEP0111)によって置き換えられました。
DEP0104: process.env
の文字列強制変換#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
process.env
に文字列以外のプロパティを代入する場合、代入された値は暗黙的に文字列に変換されます。この動作は、代入された値が文字列、ブール値、または数値でない場合、非推奨です。将来、このような代入はエラーをスローする可能性があります。process.env
に代入する前に、プロパティを文字列に変換してください。
DEP0105: decipher.finaltol
#
タイプ: ライフサイクル終了
decipher.finaltol()
はドキュメント化されておらず、decipher.final()
のエイリアスでした。このAPIは削除され、代わりにdecipher.final()
を使用することをお勧めします。
DEP0106: crypto.createCipher
と crypto.createDecipher
#
タイプ: ランタイム
crypto.createCipher()
と crypto.createDecipher()
は、弱いキー導出関数(ソルトのない MD5)と静的な初期化ベクトルを使用しているため、避ける必要があります。crypto.pbkdf2()
または crypto.scrypt()
を使用してランダムなソルトでキーを導出し、crypto.createCipheriv()
と crypto.createDecipheriv()
を使用してそれぞれ Cipher
と Decipher
オブジェクトを取得することをお勧めします。
DEP0107: tls.convertNPNProtocols()
#
タイプ: ライフサイクル終了
これは、Node.js コア以外で使用することを意図していない、ドキュメント化されていないヘルパー関数であり、NPN(Next Protocol Negotiation)サポートの削除によって廃止されました。
DEP0108: zlib.bytesRead
#
タイプ: ランタイム
zlib.bytesWritten
の非推奨エイリアスです。この元の名前は、エンジンの読み取ったバイト数として解釈することも理にかなっていたため選択されましたが、これらの名前で値を公開するNode.jsの他のストリームとは矛盾しています。
DEP0109: 無効なURLに対するhttp
、https
、およびtls
のサポート#
タイプ: ライフサイクル終了
以前はサポートされていた(しかし厳密には無効な)一部のURLは、レガシーのurl.parse()
APIで受け入れられていたため、http.request()
、http.get()
、https.request()
、https.get()
、およびtls.checkServerIdentity()
APIを介して受け入れられていました。上記のAPIは現在、厳密に有効なURLを必要とするWHATWG URLパーサーを使用しています。無効なURLを渡すことは非推奨であり、将来サポートが削除されます。
DEP0110: vm.Script
のキャッシュされたデータ#
タイプ: ドキュメントのみ
produceCachedData
オプションは非推奨です。代わりに script.createCachedData()
を使用してください。
DEP0111: process.binding()
#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
process.binding()
は、Node.js の内部コードでのみ使用するためのものです。
process.binding()
は一般的に廃止予定の状態には達していませんが、ポリシーまたはパーミッションモデルが有効になっている場合は使用できません。
DEP0112: dgram
のプライベートAPI#
タイプ: ランタイム
node:dgram
モジュールには、以前はNode.jsコア以外からアクセスすることを意図していなかったいくつかのAPIが含まれていました:Socket.prototype._handle
、Socket.prototype._receiving
、Socket.prototype._bindState
、Socket.prototype._queue
、Socket.prototype._reuseAddr
、Socket.prototype._healthCheck()
、Socket.prototype._stopReceiving()
、およびdgram._createSocketHandle()
。
DEP0113: Cipher.setAuthTag()
、Decipher.getAuthTag()
#
タイプ: ライフサイクル終了
Cipher.setAuthTag()
と Decipher.getAuthTag()
は使用できなくなりました。これらはドキュメント化されておらず、呼び出されると例外をスローします。
DEP0114: crypto._toBuf()
#
タイプ: ライフサイクル終了
crypto._toBuf()
関数は、Node.jsコア以外のモジュールで使用するために設計されておらず、削除されました。
DEP0115: crypto.prng()
、crypto.pseudoRandomBytes()
、crypto.rng()
#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
最近のNode.jsバージョンでは、crypto.randomBytes()
とcrypto.pseudoRandomBytes()
の間に違いはありません。後者は、ドキュメント化されていないエイリアスであるcrypto.prng()
およびcrypto.rng()
と共に非推奨となり、crypto.randomBytes()
が推奨されます。将来のリリースで削除される可能性があります。
DEP0116: 従来のURL API#
タイプ: 非推奨の取り消し
従来のURL APIは非推奨です。これには、url.format()
、url.parse()
、url.resolve()
、および従来のurlObject
が含まれます。WHATWG URL APIを使用してください。
DEP0117: ネイティブ暗号ハンドル#
タイプ: ライフサイクル終了
以前のバージョンのNode.jsでは、Cipher
、Decipher
、DiffieHellman
、DiffieHellmanGroup
、ECDH
、Hash
、Hmac
、Sign
、Verify
クラスの_handle
プロパティを通じて、内部ネイティブオブジェクトへのハンドルが公開されていました。ネイティブオブジェクトの不適切な使用はアプリケーションのクラッシュにつながる可能性があるため、_handle
プロパティは削除されました。
DEP0118: 偽のホスト名に対するdns.lookup()
のサポート#
タイプ: ランタイム
以前のバージョンのNode.jsでは、下位互換性のために、dns.lookup(false)
のような偽のホスト名でdns.lookup()
がサポートされていました。この動作はドキュメント化されておらず、実世界のアプリケーションでは使用されていないと考えられています。将来のバージョンのNode.jsではエラーになります。
DEP0119: process.binding('uv').errname()
プライベートAPI#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
process.binding('uv').errname()
は非推奨です。util.getSystemErrorName()
を使用してください。
DEP0120: Windowsパフォーマンスカウンターのサポート#
タイプ: ライフサイクル終了
WindowsパフォーマンスカウンターのサポートはNode.jsから削除されました。ドキュメント化されていないCOUNTER_NET_SERVER_CONNECTION()
、COUNTER_NET_SERVER_CONNECTION_CLOSE()
、COUNTER_HTTP_SERVER_REQUEST()
、COUNTER_HTTP_SERVER_RESPONSE()
、COUNTER_HTTP_CLIENT_REQUEST()
、COUNTER_HTTP_CLIENT_RESPONSE()
関数は非推奨になりました。
DEP0121: net._setSimultaneousAccepts()
#
タイプ: ランタイム
ドキュメント化されていないnet._setSimultaneousAccepts()
関数は、もともとWindowsでnode:child_process
およびnode:cluster
モジュールを使用する場合のデバッグとパフォーマンス調整を目的としていました。この関数は一般的に有用ではなく、削除されています。詳細は以下を参照してください。https://github.com/nodejs/node/issues/18391
DEP0122: tls
Server.prototype.setOptions()
#
タイプ: ランタイム
Server.prototype.setSecureContext()
を使用してください。
DEP0123: TLS ServerNameをIPアドレスに設定#
タイプ: ランタイム
RFC 6066では、TLS ServerNameをIPアドレスに設定することは許可されていません。これは将来のバージョンで無視されます。
DEP0124: REPLServer.rli
の使用#
タイプ: ライフサイクル終了
このプロパティは、インスタンス自体への参照です。
DEP0125: require('node:_stream_wrap')
#
タイプ: ランタイム
node:_stream_wrap
モジュールは非推奨です。
DEP0126: timers.active()
#
タイプ: ランタイム
以前はドキュメント化されていなかったtimers.active()
は非推奨です。公開されているドキュメントのtimeout.refresh()
を使用してください。タイムアウトの再参照が必要な場合は、Node.js 10以降、パフォーマンスへの影響はありません。timeout.ref()
を使用できます。
DEP0127: timers._unrefActive()
#
タイプ: ランタイム
以前はドキュメント化されておらず、「プライベート」であったtimers._unrefActive()
は非推奨です。公開されているドキュメントのtimeout.refresh()
を使用してください。タイムアウトの参照解除が必要な場合は、Node.js 10以降、パフォーマンスへの影響はありません。timeout.unref()
を使用できます。
DEP0128: 無効なmain
エントリとindex.js
ファイルを持つモジュール#
タイプ: ランタイム
無効なmain
エントリ(例:./does-not-exist.js
)を持ち、最上位ディレクトリにindex.js
ファイルも持つモジュールは、index.js
ファイルを解決します。これは非推奨であり、将来のNode.jsバージョンではエラーが発生します。
DEP0129: ChildProcess._channel
#
タイプ: ランタイム
spawn()
などの関数によって返される子プロセスのオブジェクトの_channel
プロパティは、公開使用を意図したものではありません。代わりにChildProcess.channel
を使用してください。
DEP0130: Module.createRequireFromPath()
#
タイプ: ライフサイクル終了
代わりにmodule.createRequire()
を使用してください。
DEP0131: 従来のHTTPパーサー#
タイプ: ライフサイクル終了
Node.js 12.0.0より前のバージョンでデフォルトで使用されていた従来のHTTPパーサーは非推奨であり、v13.0.0で削除されました。v13.0.0より前では、--http-parser=legacy
コマンドラインフラグを使用して、従来のパーサーに戻すことができました。
DEP0132: コールバック付きのworker.terminate()
#
タイプ: ランタイム
worker.terminate()
にコールバックを渡すことは非推奨です。代わりに返されたPromise
またはワーカーの'exit'
イベントのリスナーを使用してください。
DEP0133: http
connection
#
タイプ: ドキュメントのみ
response.connection
よりもresponse.socket
を、request.connection
よりもrequest.socket
を優先してください。
DEP0134: process._tickCallback
#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
process._tickCallback
プロパティは、公式にサポートされているAPIとしてドキュメント化されたことはありませんでした。
DEP0135: WriteStream.open()
とReadStream.open()
は内部APIです#
タイプ: ランタイム
WriteStream.open()
とReadStream.open()
は、ユーザーランドで使用するには意味のない、ドキュメント化されていない内部APIです。ファイルストリームは、常に対応するファクトリメソッドfs.createWriteStream()
およびfs.createReadStream()
を使用するか、オプションでファイルディスクリプターを渡して開く必要があります。
DEP0136: http
finished
#
タイプ: ドキュメントのみ
response.finished
は、response.end()
が呼び出されたかどうかを示し、'finish'
が発行され、基礎となるデータがフラッシュされたかどうかを示すものではありません。
あいまいさを避けるために、代わりにresponse.writableFinished
またはresponse.writableEnded
を適切に使用してください。
既存の動作を維持するには、response.finished
をresponse.writableEnded
に置き換える必要があります。
DEP0137: ガベージコレクションでのfs.FileHandleのクローズ#
タイプ: ランタイム
fs.FileHandle
オブジェクトをガベージコレクションでクローズすることを許可することは非推奨です。将来、そうすると、プロセスを終了するスローエラーが発生する可能性があります。
fs.FileHandle
が不要になった場合は、FileHandle.prototype.close()
を使用して、すべてのfs.FileHandle
オブジェクトを明示的にクローズしてください。
const fsPromises = require('node:fs').promises;
async function openAndClose() {
let filehandle;
try {
filehandle = await fsPromises.open('thefile.txt', 'r');
} finally {
if (filehandle !== undefined)
await filehandle.close();
}
}
DEP0138: process.mainModule
#
タイプ: ドキュメントのみ
process.mainModule
はCommonJS専用機能であり、process
グローバルオブジェクトは非CommonJS環境と共有されます。ECMAScriptモジュール内での使用はサポートされていません。
同じ目的を果たし、CommonJS環境でのみ使用可能であるため、require.main
が推奨されます。
DEP0139: 引数なしのprocess.umask()
#
タイプ: ドキュメントのみ
引数なしでprocess.umask()
を呼び出すと、プロセス全体のumaskが2回書き込まれます。これにより、スレッド間の競合状態が発生し、潜在的なセキュリティ脆弱性が発生します。安全でクロスプラットフォームの代替APIはありません。
DEP0140: request.abort()
の代わりにrequest.destroy()
を使用#
タイプ: ドキュメントのみ
request.abort()
の代わりにrequest.destroy()
を使用してください。
DEP0141: repl.inputStream
とrepl.outputStream
#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
node:repl
モジュールは、入力ストリームと出力ストリームを2回エクスポートしました。.inputStream
の代わりに.input
を、.outputStream
の代わりに.output
を使用してください。
DEP0142: repl._builtinLibs
#
タイプ: ドキュメントのみ
node:repl
モジュールは、組み込みモジュールの配列を含む _builtinLibs
プロパティをエクスポートします。これまでは不完全でしたが、require('node:module').builtinModules
を使用する方が適切です。
DEP0143: Transform._transformState
#
タイプ: ランタイム 実装の簡素化により、Transform._transformState
は今後のバージョンで不要になり、削除されます。
DEP0144: module.parent
#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
CommonJS モジュールは、それを必要とした最初のモジュールに module.parent
を使用してアクセスできます。この機能は、ECMAScript モジュールが存在する場合に一貫して動作しないため、また CommonJS モジュールグラフの不正確な表現を与えるため、非推奨とされています。
いくつかのモジュールは、それが現在のプロセスのエントリポイントかどうかを確認するためにこれを使用します。代わりに、require.main
と module
を比較することをお勧めします。
if (require.main === module) {
// Code section that will run only if current file is the entry point.
}
現在のモジュールを必要とした CommonJS モジュールを探す場合は、require.cache
と module.children
を使用できます。
const moduleParents = Object.values(require.cache)
.filter((m) => m.children.includes(module));
DEP0145: socket.bufferSize
#
タイプ: ドキュメントのみ
socket.bufferSize
は writable.writableLength
のエイリアスです。
DEP0146: new crypto.Certificate()
#
タイプ: ドキュメントのみ
crypto.Certificate()
コンストラクタ は非推奨です。代わりに crypto.Certificate()
の静的メソッド を使用してください。
DEP0147: fs.rmdir(path, { recursive: true })
#
タイプ: ランタイム
Node.js の今後のバージョンでは、recursive
オプションは fs.rmdir
、fs.rmdirSync
、および fs.promises.rmdir
では無視されます。
代わりに fs.rm(path, { recursive: true, force: true })
、fs.rmSync(path, { recursive: true, force: true })
、または fs.promises.rm(path, { recursive: true, force: true })
を使用してください。
DEP0148: "exports"
内のフォルダーマッピング(末尾の "/"
)#
タイプ: ランタイム
サブパスエクスポート または サブパスインポート フィールドでサブパスフォルダーマッピングを定義するために末尾の "/"
を使用することは非推奨です。代わりに サブパターンのパターン を使用してください。
DEP0149: http.IncomingMessage#connection
#
タイプ: ドキュメントのみ。
message.socket
を message.connection
より優先してください。
DEP0150: process.config
の値の変更#
タイプ: ライフサイクル終了
process.config
プロパティは、Node.js のコンパイル時設定へのアクセスを提供します。ただし、このプロパティは変更可能であるため、改ざんの対象となります。値を変更する機能は、Node.js の今後のバージョンで削除されます。
DEP0151: メインインデックスの検索と拡張子の検索#
タイプ: ランタイム
以前は、ES モジュールの解決時でも、index.js
と拡張子の検索ルックアップが import 'pkg'
メインエントリポイントの解決に適用されていました。
この非推奨化により、すべての ES モジュールメインエントリポイントの解決には、正確なファイル拡張子を持つ明示的な "exports"
または "main"
エントリ が必要になります。
DEP0152: 拡張 PerformanceEntry プロパティ#
タイプ: ランタイム
'gc'
、'http2'
、および 'http'
<PerformanceEntry> オブジェクトタイプには、追加情報を提供する追加のプロパティが割り当てられています。これらのプロパティは、現在、PerformanceEntry
オブジェクトの標準的な detail
プロパティ内で使用できます。既存のアクセサーは非推奨となり、これ以上使用しないでください。
DEP0153: dns.lookup
と dnsPromises.lookup
のオプションの型強制#
タイプ: ライフサイクル終了
dns.lookup()
と dnsPromises.lookup()
で、family
オプションに null 以外で非整数の値、hints
オプションに null 以外で非数値の値、all
オプションに null 以外で非ブール値、または verbatim
オプションに null 以外で非ブール値を使用すると、ERR_INVALID_ARG_TYPE
エラーがスローされます。
DEP0154: RSA-PSS キーペア生成オプション#
タイプ: ランタイム
'hash'
オプションと 'mgf1Hash'
オプションは、'hashAlgorithm'
と 'mgf1HashAlgorithm'
に置き換えられました。
DEP0155: パターン指定子の解決における末尾のスラッシュ#
タイプ: ランタイム
import 'pkg/x/'
のような末尾に "/"
が付いた指定子の再マッピングは、パッケージの "exports"
と "imports"
パターンの解決では非推奨です。
DEP0156: http
の .aborted
プロパティと 'abort'
、'aborted'
イベント#
タイプ: ドキュメントのみ
http.ClientRequest
、http.ServerResponse
、および http.IncomingMessage
はすべてストリームベースであるため、代わりに <Stream> API に移行してください。.aborted
プロパティの代わりに stream.destroyed
を確認し、'abort'
、'aborted'
イベントの代わりに 'close'
をリッスンしてください。
.aborted
プロパティと 'abort'
イベントは、.abort()
呼び出しを検出する場合にのみ役立ちます。リクエストを早期に閉じるには、Stream の .destroy([error])
を使用し、その後 .destroyed
プロパティと 'close'
イベントを確認すると、同じ効果が得られます。受信側も、それが中止された破壊か正常な破壊かどうかを取得するために、http.IncomingMessage
の readable.readableEnded
値を確認する必要があります。
DEP0157: ストリームでの Thenable サポート#
タイプ: ライフサイクル終了
Node.js ストリームの文書化されていない機能として、実装メソッドで Thenable をサポートしていました。これは現在非推奨であり、代わりにコールバックを使用し、ストリーム実装メソッドに非同期関数を使用しないでください。
この機能により、ユーザーがコールバックスタイルで関数を実装しますが、たとえば非同期メソッドを使用すると、Promise とコールバックのセマンティクスを混在させることは無効であるためエラーが発生するという予期せぬ問題が発生しました。
const w = new Writable({
async final(callback) {
await someOp();
callback();
},
});
DEP0158: buffer.slice(start, end)
#
タイプ: ドキュメントのみ
このメソッドは、Buffer
のスーパークラスである Uint8Array.prototype.slice()
と互換性がないため、非推奨とされました。
代わりに、同じことを行う buffer.subarray
を使用してください。
DEP0159: ERR_INVALID_CALLBACK
#
タイプ: ライフサイクル終了
値の型検証に使用されるエラーにさらに混乱が生じるため、このエラーコードは削除されました。
DEP0160: process.on('multipleResolves', handler)
#
タイプ: ランタイム。
このイベントは、V8 の Promise コンビネーターでは機能しなかったため、非推奨とされました。これにより、その有用性が低下しました。
DEP0161: process._getActiveRequests()
と process._getActiveHandles()
#
タイプ: ドキュメントのみ
process._getActiveHandles()
関数と process._getActiveRequests()
関数は、公開用を意図したものではなく、今後のリリースで削除される可能性があります。
アクティブなリソースの実際の参照ではなく、アクティブなリソースの種類のリストを取得するには、process.getActiveResourcesInfo()
を使用してください。
DEP0162: fs.write()
、fs.writeFileSync()
の文字列への強制変換#
タイプ: ライフサイクル終了
fs.write()
、fs.writeFile()
、fs.appendFile()
、fs.writeFileSync()
、および fs.appendFileSync()
の第2パラメーターとして渡される、独自の toString
プロパティを持つオブジェクトの暗黙的な強制変換は非推奨です。それらをプリミティブ文字列に変換してください。
DEP0163: channel.subscribe(onMessage)
、channel.unsubscribe(onMessage)
#
タイプ: ドキュメントのみ
これらのメソッドは、チャネル参照をイベントを受信するのに十分な長さだけ保持しない方法で使用できるため、非推奨とされました。
代わりに、同じことを行う diagnostics_channel.subscribe(name, onMessage)
または diagnostics_channel.unsubscribe(name, onMessage)
を使用してください。
DEP0164: process.exit(code)
、process.exitCode
の整数への強制変換#
タイプ: ライフサイクル終了
process.exit()
の code
パラメーターの値として、また process.exitCode
に割り当てる値として、undefined
、null
、整数、整数文字列(例:'1'
)以外の値は非推奨です。
DEP0165: --trace-atomics-wait
#
タイプ: ドキュメントのみ
--trace-atomics-wait
フラグは非推奨です。
DEP0166: インポートおよびエクスポートターゲットにおける二重スラッシュ#
タイプ: ランタイム
二重スラッシュ(「/」または「\」)を含むパスにマップされるパッケージのインポートおよびエクスポートターゲットは非推奨となり、今後のリリースでは解決策検証エラーが発生します。この非推奨化は、スラッシュで始まりまたは終わるパターンマッチにも適用されます。
DEP0167: 脆弱なDiffieHellmanGroup
インスタンス(modp1
、modp2
、modp5
)#
タイプ: ドキュメントのみ
よく知られたMODPグループであるmodp1
、modp2
、およびmodp5
は、現実的な攻撃に対して安全ではないため非推奨です。詳細はRFC 8247 セクション 2.4を参照してください。
これらのグループは、Node.jsの今後のバージョンで削除される可能性があります。これらのグループに依存するアプリケーションは、より強力なMODPグループの使用を検討する必要があります。
DEP0168: Node-APIコールバックにおける未処理の例外#
タイプ: ランタイム
Node-APIコールバックにおける未処理例外の暗黙的な抑制は、非推奨となりました。
--force-node-api-uncaught-exceptions-policy
フラグを設定して、Node-APIコールバックで例外が処理されない場合に、Node.jsが'uncaughtException'
イベントを発行するように強制します。
DEP0169: セキュリティ上の問題があるurl.parse()
#
種類: ドキュメントのみ(--pending-deprecation
をサポート)
url.parse()
の動作は標準化されておらず、セキュリティ上の問題につながる可能性のあるエラーが発生しやすいです。WHATWG URL APIを使用してください。url.parse()
の脆弱性に対してCVEは発行されません。
DEP0170: url.parse()
を使用する場合の無効なポート#
タイプ: ランタイム
url.parse()
は、数値でないポートを持つURLを受け入れます。この動作により、予期しない入力によってホスト名スプーフィングが発生する可能性があります。これらのURLは、WHATWG URL APIですでにそうであるように、Node.jsの今後のバージョンではエラーをスローします。
DEP0171: http.IncomingMessage
ヘッダーとトレーラーのセッター#
タイプ: ドキュメントのみ
Node.jsの今後のバージョンでは、message.headers
、message.headersDistinct
、message.trailers
、およびmessage.trailersDistinct
は読み取り専用になります。
DEP0172: AsyncResource
バインド関数のasyncResource
プロパティ#
タイプ: ランタイム
Node.jsの今後のバージョンでは、関数がAsyncResource
にバインドされた場合、asyncResource
プロパティは追加されなくなります。
DEP0173: assert.CallTracker
クラス#
タイプ: ドキュメントのみ
Node.jsの今後のバージョンでは、assert.CallTracker
は削除されます。mock
ヘルパー関数などの代替手段を検討してください。
DEP0174: Promise
を返す関数へのpromisify
の呼び出し#
タイプ: ランタイム
util.promisify
をPromiseを返す関数に呼び出すと、
DEP0175: util.toUSVString
#
タイプ: ドキュメントのみ
util.toUSVString()
APIは非推奨です。String.prototype.toWellFormed
を使用してください。
DEP0176: fs.F_OK
、fs.R_OK
、fs.W_OK
、fs.X_OK
#
タイプ: ドキュメントのみ
node:fs
で直接公開されているF_OK
、R_OK
、W_OK
、およびX_OK
ゲッターは非推奨です。代わりにfs.constants
またはfs.promises.constants
から取得してください。
DEP0177: util.types.isWebAssemblyCompiledModule
#
タイプ: ライフサイクル終了
util.types.isWebAssemblyCompiledModule
APIは削除されました。代わりにvalue instanceof WebAssembly.Module
を使用してください。
DEP0178: dirent.path
#
タイプ: ドキュメントのみ
dirent.path
は、リリースライン間の一貫性がないため非推奨です。代わりにdirent.parentPath
を使用してください。
DEP0179: Hash
コンストラクタ#
タイプ: ドキュメントのみ
Hash()
またはnew Hash()
を使用してHash
クラスを直接呼び出すことは、内部実装であり、公開用ではないため非推奨です。Hashインスタンスを作成するには、crypto.createHash()
メソッドを使用してください。