2016-08-01 91 views
1

我正在嘗試使用節點js'fs'模塊從本地系統讀取文件。但由於某些原因,當我通過絕對路徑時,'fs'模塊不工作。從節點fs中的絕對路徑讀取本地文件

代碼:

let filePath = "/home/mysystem/dev/myproject/sayHello.txt"; 
let newFile=fs.readFileSync('file://'+filePath); 

代碼拋出一個錯誤:

Uncaught Error: ENOENT: no such file or directory, open 'file:///home/mysystem/dev/myproject/sayHello.txt' 

但我可以使用相同的路徑從打開瀏覽器窗口中的文件。 如果我傳遞相對路徑,fs模塊正在工作。我正在使用電子框架構建的應用程序中使用它。

+2

您不需要NodeJS的'file'協議。只需嘗試閱讀'filePath'而不用'「file://」' – zfor

+0

謝謝! 。我試圖解決這個很長一段時間。 :) – Roy

+0

@zfor您能否將您的評論轉換爲答案? –

回答

3

在NodeJS中,您不必使用file協議來讀取文件。

可以擺脫"file://"部分,並嘗試閱讀filePath直接

let filePath = "/home/mysystem/dev/myproject/sayHello.txt"; 
let newFile = fs.readFileSync(filePath); 
0

我得到了這個難倒了一點。如果在Windows上使用Angular 2和Typescript,您的絕對路徑將如下所示:

import { readdirSync } from "fs"; 
. . . 
let x = readdirSync("C:/SAFE/Dir1/Blah"); 
console.log("files retrieved="+ x.length);