#javascript #node.js #fs
#javascript #node.js #fs
Вопрос:
Я пытаюсь удалить все изображения каталога. Но появляется ошибка в пути к каталогу. А также не знаю, как получить путь ко всем изображениям и удалить их все.
Моя структура каталогов :
server
-> app.js
tmp
-upload
-- pic.jpg
-- pic2.jpg
-- pic3.jpg
Я пробовал это :
var dir = require('../tmp/upload');
var fs = require('fs');
var promise = require('bluebird');
fs.readdir(dir).then(function(file) {
console.log(data)
}).catch(function(err){
console.log
})
Но появляется ошибка: не удается найти модуль ‘../tmp /upload’
Нужна помощь, чтобы получить путь и все изображения в папке загрузки и удалить их.
Заранее спасибо
Комментарии:
1. Если app.js находится на том же уровне, что и tmp, тогда вместо этого используйте ./tmp/upload . .. попытается выйти за пределы папки, в которой выполняется текущий код.
2. app.js находится в папке сервера. папка загрузки находится в папке tmp. Итак, каким будет путь??? сервер -> app.js tmp -загрузить — pic.jpg
3. Итак app.js и tmp находятся в той же папке, которая называется server?
4. Нет app.js находится в папке сервера tmp находится непосредственно за пределами сервера
Ответ №1:
Вы получили эту ошибку просто потому, что вам действительно потребовался модуль из относительного пути вместо его разрешения. Чтобы преобразовать относительный путь в абсолютный путь, вам нужно использовать path.resolve
, а не require
.
var path = require('path');
var dir = path.resolve('../tmp/upload');
Ответ №2:
const fsPromises = require('fs').promises
// For ES syntax: import { promises as fsPromises } from 'fs'
const directory = 'your/directory/path/here'
await fsPromises.rmdir(directory, {
recursive: true
})