私は、ユーザーがアップロードしたすべての曲がアップロードされるディレクトリを持っています。私はこのアプリのmongodbを使っていますが、mongodbは正常に動作していますが、使いたいです src urlはuploads/something/songs/user/songnameになります。Controller.jsに示されているようにRouter.getを使用しようとしました しかし、これは私が内部500エラーを持っている、私が間違っていたknwoを教えてください。静的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>
その今までに何のように私はありがとう、事前に
ディレクトリを使用しますアップロード/ songname歌/ anyusername/songnameのために書く:)
それは多分、あなたのケースで役立つかもしれないHTMLベースのタグを使用して、サーバー/急行のconfig /構文エラーでない限り:http://www.w3schools.com/tags/tag_base.asp – mika
なぜありませんy生成されたHTMLファイルの外観(ブラウザに表示される内容)を表示します。テンプレートは表示されません。あなたはブラウザでView/Sourceを使ってそれを得ることができます。おそらくあなたの曲のURLはHTMLページで間違っていますが、確かに知るにはHTMLを生成する必要があります。 – jfriend00