Pengenalan
Node.js ialah persekitaran masa jalan JavaScript yang terkenal yang digunakan secara meluas dalam bidang pembangunan web. Artikel ini akan memperkenalkan masalah biasa: apabila menggunakan Node.js untuk membaca fail imej, kadangkala kami menghadapi ralat berikut:
Error: ENOENT: no such file or directory, open './image.jpg'
Ini kerana Node.js tidak mencari fail imej dengan betul. Jadi, bagaimana untuk menyelesaikan masalah ini?
Penyelesaian
Pertama, kita perlu menyemak sama ada laluan fail itu betul. Dalam Node.js, laluan relatif adalah relatif kepada direktori kerja semasa. Nah, kita perlu memastikan direktori kerja semasa adalah betul. Kami boleh menukar direktori kerja semasa dengan melaksanakan kod berikut:
process.chdir('path/to/your/directory')
Sudah tentu, anda juga boleh memasukkan parameter baris arahan pada masa larian untuk menentukan direktori kerja:
$ node app.js path/to/your/directory
process.chdir(process.argv[2] || '.')
Memang berbaloi mengambil perhatian bahawa sistem Unix Pemisah laluan dalam sistem Windows adalah berbeza menggunakan /
pemisah, manakala Windows menggunakan ` 分隔符。为了兼容这两个系统,我们应该使用 Node.js 内置模块
laluan` untuk memproses laluan, seperti berikut:
const path = require('path') path.join(__dirname, 'path/to/your/directory')
dan __dirname
. __filename
__dirname
__filename
untuk mendapatkan laluan mutlak direktori di mana skrip semasa terletak , dan kemudian gabungkan laluan fail. Berikut ialah kod sampel: __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
Atas ialah kandungan terperinci nodejs tidak dapat mencari imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!