簡體   English   中英

在nodejs中使用fs的絕對路徑

[英]Absolute path using fs in nodejs

我試圖從我的nodejs服務器管道一個http audio stream

var streamPath = 'http://127.0.0.1:1485/mystream.mp3';
var stat = fs.statSync(streamPath);
response.writeHead(200, {'Content-Type': 'audio/mpeg','Content-Length': stat.size});
fs.createReadStream(streamPath).pipe(response);

問題是fs不喜歡絕對路徑,我得到以下錯誤:

錯誤:ENOENT:沒有這樣的文件或目錄,stat'C:\\ myserver \\ http:\\ 127.0.0.1:1485 \\ mystream.mp3'

我找不到使用absolute path 這甚至可以用fs嗎?

'http://127.0.0.1:1485/mystream.mp3'不是絕對路徑,而是URL。

絕對路徑類似於文件系統上的/home/x/dir/file.txt

如果您想從URL獲取流,則需要使用httprequest 或者,如果要在不使用網絡的情況下獲取文件系統上的文件,則需要在文件系統上使用路徑而不是URL。

fs.createReadStream只能在文件系統中打開本地文件。

有關詳細信息,請參閱:

要通過網絡獲取文件,請參閱:

您正試圖通過fs訪問遠程資源 - 這是錯誤的。 fs用於Local Filesystem 如果要訪問任何遠程資源,則必須使用httphttps 但是,如果我正確地看到了您正在嘗試訪問您的localhost ,這應該可以正常工作。

您的應用程序正在嘗試訪問以下文件: C:\\myserver\\http:\\127.0.0.1:1485\\mystream.mp3如果您仔細查看無法正常工作。 您的路徑與您的本地路徑和遠程源(實際上是localhost )混合在一起。 嘗試修復你的路徑,這應該可以解決你的問題。 請記住, fs只適用於您的本地系統。

您還應該考慮fs.statSync這將阻止其他所有內容,直到它完成。

文檔:

  1. fs: https//nodejs.org/api/fs.html

  2. http: https//nodejs.org/api/http.html

  3. https:https: //nodejs.org/api/https.html

此致,Megajin

暫無
暫無

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

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