2015-05-28 2 views
0

Есть ли способ получить доступ к каталогу root ('/') Linux через узел? Прямо сейчас, у меня есть что-то вроде этого:Доступ к корневому каталогу с использованием Node

multipart = require('connect-multiparty') 
app.use(multipart({ 
    uploadDir: config.tmp 
})); 

... 

var file = req.files.file; 
fs.renameSync(file.path, ".", function(err) { 
    if(err) console.error(err.stack); 
}) 

, но проблема в том, что file.path имеет в виду папку внутри корня Linux, а не корня проекта.

+2

Вы попробовали просто '/'? "" означает текущий каталог, BTW. – dthree

+0

вы можете использовать экспресс для этого var express = require ('express') , app = express() app.use (express.static (__ dirname + '/ Dirname')); –

ответ

0

Наиболее буквальный ответ на ваш вопрос

Есть ли способ, чтобы получить доступ к корневой Linux («/») каталога через узел?

Это да, с помощью /. Node.js не должен давать никакого специального лечения. Root - это каталог, как и любой другой.

На ваш код ...

fs.renameSync занимает источник первого и второго пункта назначения. Вы переименовываете файл в ., который представляет текущий рабочий каталог. Я даже не уверен, что вы можете переименовать что-то в .. Я бы извлек имя файла из пути, а затем установил пункт назначения в корневой каталог плюс это имя файла.

Как получить доступ к корневому каталогу, который, как вы сказали, равен /, ну, используйте /.

Кстати, почему вы используете renameSync с обратным вызовом и ничего после него? Согласно документации, это недопустимо. Это либо асинхронный вызов с обратным вызовом, либо синхронизация без обратного вызова. Таким образом, ваш обратный вызов, вероятно, не срабатывает.

var file = req.files.file; 
fs.rename(file.path, '/' + path.basename(file.path), function(err) { 
    if(err) console.error(err.stack); 
}); 

Кстати, я должен решительно выступать против применения писать файлы в корневой каталог Linux, по ряду причин:

  1. требует привилегий суперпользователя, который открывает банку с червями.
  2. Никто не задумывался, чтобы посмотреть там
  3. Малейшая ошибка может нанести непоправимый урон. Что делать, если желаемое имя файла «etc» или «boot»?
  4. Есть миллион лучших мест для хранения файлов, загружаемых с веб-сервера.
Смежные вопросы