合并非ssr路由,避免重复代码Angular SSR server.ts

Combine non ssr routes to avoide repeated code Angular SSR server.ts

在我的 server.ts 中,我分离了一些需要作为非 ssr 服务的 url。这似乎工作正常,但我几乎没有其他 url 需要添加。我必须克隆这三行代码并将该路由替换为另一个非 ssr。有没有一种方法可以将这些 url 组合成一个数组,这样我就不必重复代码了。

我的server.ts

  server.get('/invite', (req, res) => {
    console.log('invite');
    res.sendFile(distFolder + '/index.html');
  });
  server.get('/invite/**', (req, res) => {
    console.log('invite/**');
    res.sendFile(distFolder + '/index.html');
  });
  server.get('/dashboard', (req, res) => {
    console.log('dashboard');
    res.sendFile(distFolder + '/index.html');
  });
  server.get('/dashboard/**', (req, res) => {
    console.log('dashboard/**');
    res.sendFile(distFolder + '/index.html');
  });
  server.get('/public/**', (req, res) => {
    console.log('public/**');
    res.sendFile(distFolder + '/index.html');
  });
  server.get('/pre', (req, res) => {
    console.log('pre/**');
    res.sendFile(distFolder + '/index.html');
  });
  server.get('/public', (req, res) => {
    console.log('public**');
    res.sendFile(distFolder + '/index.html');
  });
  
  // All regular routes use the Universal engine
  server.get('*', (req, res) => {
    res.render(indexHtml, { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] });
  });

嗯,您可以只将一个数组传递给 get 方法。

 server.get([
  '/invite',
  '/invite/**',
  '/dashboard',
  '/dashboard/**'
  ], (req, res) => {
    console.log('Called path', req.route.path);
    res.sendFile(distFolder + '/index.html');
  });