0

ExpressJSサーバーサイドを使用してAngularアプリで # を回避することに取り組んできました。html5mode を有効にする方法を調査しましたが、うまくいきました。しかし、/api/services などの別の URL からデータを取得する別の 'get' 要求がある場合は常に、何らかの理由で壊れているように見え、ページに適切にデータを提供しません。

これが私がエクスプレスエンドで行ったことです。

router.get('/*', function (req, res, next) {
  res.render('index');
});
router.get('/api/service-edit', function (req, res, next) {
  Service.find(function (err, services) {
    if (err) {return next(err);}
    res.json(services);
  });
});

100% 確実ではありませんが、「/*」が原因で、サーバーが API URL を読み取る際に問題が発生する可能性があります。この問題の経験があり、これを解決するための解決策があるかどうか疑問に思っています。

お時間をいただきありがとうございます。

4

1 に答える 1

1

Expressjs では、ルーティング ルールは、コードで提示した順序で照合されます。したがって、'/*' ルールは常に最初に一致し、2 番目のルールには到達しません。

最初のルールの前に 2 番目のルールを配置すると、問題が解決する可能性があります。

それが役に立てば幸い。

于 2016-11-03T14:35:48.887 に答える