2017-09-16 17 views
0

私はnode/expressには本当に新しく、静的ファイルの送信方法を理解しようとしています。私はインデックスファイルを提供することができましたが、GETリクエストの応答として他のファイルを提供することはできません。ノード/エクスプレスが要求に応じて静的ファイルを送信します

app.use(express.static(path.join(__dirname, '/client/build'))) 

app.get('/', (req, res) => { 
    res.sendFile(path.resolve(__dirname, '.', 'client/build/', 'index.html')) 
    res.end() 
}) 

app.get('/portfolio', (req, res) => { 
    const person = req.query.name 
    var filePath = __dirname + '/client/build/' + person + '/' + 'index.html' 
    res.sendFile(filePath) 
    res.end() 
}) 

私は同様の質問を見つけましたが、何も動作していません。

私が送る要求がある:

fetch(`portfolio?name=${who}`) 
+1

あなたはどのようなリクエストをサーバーに送信しますか? – alexmac

+0

'人物 'とは何ですか?あなたはどのようなリクエストをサーバーに送りますか? – turmuka

+0

@alexmac私は、要求が「誰」は、ポートフォリオの所有者 – Braian

答えて

0

あなたのコードを持ついくつかの問題があります。そのうちの1つは、ファイルの送信が完了する前にリクエストを終了し、res.sendFileメソッドを正しく使用していないという別の問題です。

はこのような何かを試してみてください。

app.get('/', (req, res) => { 
    const fileDirectory = path.resolve(__dirname, '.', 'client/build/'); 

    res.sendFile('index.html', {root: fileDirectory}, (err) => { 
    res.end(); 

    if (err) throw(err); 
    }); 
}) 

app.get('/portfolio', (req, res) => { 
    const person = req.query.name 
    const fileDirectory = __dirname + '/client/build/' + person + '/'; 

    res.sendFile('index.html', {root: fileDirectory}, (err) => { 
    res.end(); 

    if (err) throw(err); 
    }); 
}) 

私はあなたが1を得るが、それは、少なくともあなたがこの仕事を得ることができる方法のアイデアを与える必要があるたびにエラーを投げることはお勧めしません。

+0

の名前(文字列)である私がしようとしたが、それはしなかった ( 'ポートフォリオ?名前= $ {}')フェッチ で、質問を編集しました作業。誰かが指摘したように、express.staticはルートをマップするため、最初のリクエストハンドラ( '/')は不要です。しかし、2番目のものはまだ動作しません。もしconsole.logを置くと、要求が処理されるようにログを記録しますが、何もしないでもエラーをスローしません – Braian

0

私は最終的に、サーバー上で、これを使用して、それを解決:

app.use(express.static(path.join(__dirname, 'client/build/person1'))) 
app.use(express.static(path.join(__dirname, 'client/build/person2'))) 

と、このようなビューでそれを呼び出す:

<a href='/person1'></a> 
<a href='/person2'></a> 

それはそうと、express.staticはその上のパスを解決します独自のものであるため、静的ファイルを処理するためにリクエストを自分で処理する必要はありません。

これは良い解決策ではない場合はお気軽に

関連する問題