Как хранить данные с помощью multer вне папки проекта?

#node.js #api #file #storage #multer

Вопрос:

Я хочу сохранить файл формы за пределами папки проекта. Для этого я начал использовать

 var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null,  __dirname   'uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname   '-'   Date.now())
  }
})
 

но __dirname уже находится в папке моего проекта. Существуют ли какие-либо методы доступа к пути из папки? Спасибо!

Комментарии:

1. Как уже много раз упоминалось в SO, вам просто нужно использовать путь (он включен в Node.js, нет необходимости устанавливать что-либо новое). В частности, метод Path.resolve() позволит вам «вставить» столько строк, сколько вам нужно, чтобы создать допустимый путь для хранения в вашей файловой системе.

2. Спасибо, это помогает. К сожалению, я не видел ваших предыдущих ответов.

Ответ №1:

Вы можете либо использовать .. обозначение для перехода в одну папку, либо указать относительный корневой путь, который начинается с / .

Допустим, вы хотите сохранить свои файлы в папке, расположенной по адресу /home/john/uploads , в которой находится ваш проект /home/john/myproject . Сработали бы оба следующих варианта:

 destination: function (req, file, cb) {
  cb(null,  '/home/john/uploads');
  // or
  cb(null,  '../uploads');
},