[英]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獲取流,則需要使用http
或request
。 或者,如果要在不使用網絡的情況下獲取文件系統上的文件,則需要在文件系統上使用路徑而不是URL。
fs.createReadStream
只能在文件系統中打開本地文件。
有關詳細信息,請參閱:
要通過網絡獲取文件,請參閱:
您正試圖通過fs
訪問遠程資源 - 這是錯誤的。 fs
用於Local Filesystem
。 如果要訪問任何遠程資源,則必須使用http
或https
。 但是,如果我正確地看到了您正在嘗試訪問您的localhost
,這應該可以正常工作。
您的應用程序正在嘗試訪問以下文件: C:\\myserver\\http:\\127.0.0.1:1485\\mystream.mp3
如果您仔細查看無法正常工作。 您的路徑與您的本地路徑和遠程源(實際上是localhost
)混合在一起。 嘗試修復你的路徑,這應該可以解決你的問題。 請記住, fs
只適用於您的本地系統。
您還應該考慮fs.statSync
這將阻止其他所有內容,直到它完成。
文檔:
http: https : //nodejs.org/api/http.html
https:https: //nodejs.org/api/https.html
此致,Megajin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.