簡體   English   中英

使用節點訪問根目錄

[英]Access Root directory using Node

有什么方法可以通過節點訪問Linux根目錄('/')? 現在,我有這樣的事情:

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根目錄內的文件夾,而不是項目根目錄。

您問題的最真實答案

有什么方法可以通過節點訪問Linux根目錄('/')?

是的,通過使用/ Node.js不應對其進行任何特殊處理。 根目錄與其他目錄一樣。

轉到您的代碼...

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. 需要root特權,這會打開一罐蠕蟲。
  2. 沒有人會想到那里
  3. 絲毫的錯誤可能會造成無法挽回的損害。 如果所需的文件名是“ etc”或“ boot”怎么辦?
  4. 有上百萬個更好的位置用於存儲從Web服務器上載的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM