ホームページ >ウェブフロントエンド >フロントエンドQ&A >Nodejs が画像を見つけられません
はじめに
Node.js は、Web 開発の分野で広く使用されているよく知られた JavaScript ランタイム環境です。この記事では、Node.js を使用して画像ファイルを読み取るときに、次のエラーが発生することがあります:
Error: ENOENT: no such file or directory, open './image.jpg'
これは、Node.js が画像ファイルを正しく見つけられないためです。では、この問題をどうやって解決すればよいでしょうか?
解決策
まず、ファイル パスが正しいかどうかを確認する必要があります。 Node.js では、相対パスは現在の作業ディレクトリからの相対パスです。さて、現在の作業ディレクトリが正しいことを確認する必要があります。次のコードを実行することで、現在の作業ディレクトリを変更できます:
process.chdir('path/to/your/directory')
もちろん、実行時にコマンド ライン パラメータを渡して作業ディレクトリを指定することもできます:
$ node app.js path/to/your/directory
process.chdir(process.argv[2] || '.')
これは価値があります。 Unix システムではパス区切り文字が異なります。Unix では /
区切り文字が使用され、Windows では ` 区切り文字が使用されます。両方のシステムと互換性を持たせるには、Node.js 組み込みモジュール
path` を使用して次のようにパスを処理する必要があります:
const path = require('path') path.join(__dirname, 'path/to/your/directory')
相対パスが正しいかどうかを確認できない場合は、絶対パスを使用して問題を解決できます。絶対パスを使用するには、__dirname
と __filename
という 2 つの環境変数が必要です。
__dirname
は、現在のスクリプトが配置されているディレクトリへの絶対パスです。 __filename
は、現在のスクリプトの絶対パスです。 読み取る必要があるファイルは、現在のスクリプトが配置されているディレクトリに対する相対パスであるため、__dirname
を使用して、スクリプトが保存されているディレクトリの絶対パスを取得できます。現在のスクリプトを見つけて、そのファイル パスを結合します。以下はサンプルコードです:
const path = require('path') const fs = require('fs') const imagePath = path.join(__dirname, 'path/to/your/image.jpg') const imageStream = fs.createReadStream(imagePath) imageStream.on('error', (err) => { console.log(`Error: ${err}`) }) // do something with the image stream
複数の場所で画像を読み取る必要がある場合、または画像に対して複雑な処理を実行する必要がある場合は、次のことができます。画像を読み取るロジックは、他のモジュールで使用できるようにモジュールにカプセル化されます。以下はサンプル コードです:
const path = require('path') const fs = require('fs') module.exports = function (filePath) { const imagePath = path.join(__dirname, filePath) const imageStream = fs.createReadStream(imagePath) return imageStream }
モジュールを使用する場合、現在のスクリプトが配置されているディレクトリを基準とした相対ファイル パスを渡すだけで済みます:
const getImage = require('./get-image') const imageStream = getImage('path/to/your/image.jpg') imageStream.on('error', (err) => { console.log(`Error: ${err}`) }) // do something with the image stream
summary
この記事ではNode.js使用時に画像ファイルが見つからない問題を解決する方法がいくつかあります。 Node.js を使用して画像を処理する場合は、画像ファイルをより適切に処理するためにこれらの方法をマスターすることをお勧めします。
以上がNodejs が画像を見つけられませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。