2017-10-14 6 views
0

NodeJSサーバーの横にAngularアプリを実行しています。明示的にapp.get( '*'、func)の経路を無効にします

私server.jsファイルのこのコード:例えば

app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname, 'dist/index.html')); 
}); 

require('./server/routes/routes')(app, passport); 

は私のAPIへのGETリクエストを防止するようですが、:

module.exports = function (app, passport) { 
    app.get('/api/profile', isLoggedIn, function (req, res) { 
     res.status(200).json(req.user); 
    }); 

エクスポート/ API /プロファイルハンドラがありますリクエストが機能する投稿に変更されました。

ルートが初期ハンドラを上書きしないようにする必要がありますか?これを達成する方法は? '/ api'で始まるルートを除くすべてのルートでアプリを配信できますか?

答えて

1
ので、それが宣言されます最後のルートになり app.get('*')を移動

require('./server/routes/routes')(app, passport); 

app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname, 'dist/index.html')); 
}); 

Expressは(彼らは、特定の要求に一致する方法も)その宣言の順番ではなく、その特異性のために、ルートハンドラをチェックします。

関連する問題