我有一個目錄,其中用戶上傳的所有歌曲都會上傳。我已經使用mongodb這個應用程序,mongodb工作正常,但我想用 src url like uploads/something to songs/user/songname我嘗試使用Router.get,如Controller.js中所示 但是當我使用這是我得到的內部500錯誤,請讓我知道我犯了什麼錯誤。將靜態URL更改爲動態 - NodeJS
controller.js
Router.get('/songs/:artist/:song', (req, response) => {
console.dir(req.query)
let file = './uploads/01-Whole Lotta Love.mp3'
var stat = FileSystem.statSync(file)
response.setHeader('Content-Type', 'audio/mpeg');
response.setHeader('Content-Length', stat.length);
fs.createReadStream(file).pipe(response);
})
app.js
app.use(Express.static(path.join(__dirname, 'uploads')));
profile.ejs
<table border="1">
<% artist.songs.forEach((song) => { %>
<tr>
<td> <%= song.song %> </td>
<td>
<audio controls>
<source src="./songs/<%= artist.artistName+ '/' + song.audioPath %>" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</td>
<td>3k listens</td>
<td>2k likes</td>
<td>2k comments</td>
</tr>
<% }) %>
</table>
它像什麼都我寫的歌/anyusername/SONGNAME將使用目錄上傳/ SONGNAME
三江源提前:)
除非它是一個服務器/快遞配置/語法錯誤,也許使用HTML基標記你的情況可能會有所幫助:http://www.w3schools.com/tags/tag_base.asp – mika
爲什麼不ÿ ou顯示生成的HTML文件的外觀(瀏覽器看到的內容),而不是模板。你可以在瀏覽器中使用View/Source來獲得。在HTML頁面中,您的歌曲網址可能是錯誤的,但您需要查看生成的HTML以確認。 – jfriend00