Угловой 8 - Печенье универсальное (ССР) - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь получить куки со стороны сервера, чтобы справиться с этим использованием @ ngx-utils / cookies. В браузере он работает, как и ожидалось, но на сервере файлы cookie пусты (проверено в isPlatformServer).

Я что-то не так делаю или у @ ngx-utils / cookies есть проблема?

Я прошел учебники, руководства и примеры, но я не могу сделать эту работу, поэтому будет очень полезно, если вы мне немного поможете, и я ценю это.

server.ts

import 'zone.js/dist/zone-node';
import { enableProdMode } from '@angular/core';
import { ngExpressEngine } from '@nguniversal/express-engine';
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
import * as cookieParser from 'cookie-parser';

const compression = require('compression');
import * as express from 'express';
import { join } from 'path';
import { REQUEST, RESPONSE } from '@nguniversal/express-engine/tokens';

enableProdMode();
const app = express();
app.use(compression());
app.use(cookieParser());

const PORT = process.env.PORT || 4000;
const DIST_FOLDER = join(process.cwd(), 'dist/browser');
const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = require('./dist/server/main');

app.engine('html', ngExpressEngine({
  bootstrap: AppServerModuleNgFactory,
  providers: [
    provideModuleMap(LAZY_MODULE_MAP)
  ]
}));

app.set('view engine', 'html');
app.set('views', DIST_FOLDER);
app.get('*.*', express.static(DIST_FOLDER, {
  maxAge: '1y'
}));

app.get('*', (req, res) => {
  res.render('index', { 
    req,
    res,
    providers: [
      {
        provide: REQUEST,
        useValue: req
      },
      {
        provide: RESPONSE,
        useValue: res
      }
    ]
  });
});

app.server.module.ts

...
import { REQUEST, RESPONSE } from '@nguniversal/express-engine/tokens';

@NgModule({
  imports: [
    BrowserModule.withServerTransition({appId: 'frontend'}),
    ServerCookiesModule.forRoot(),
    AppModule,
    ServerModule,
    NoopAnimationsModule,
    ModuleMapLoaderModule,
    ServerTransferStateModule,
  ],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: TranslateInterceptor,
      multi: true
    },
    {
      provide: 'REQUEST',
      useValue: REQUEST
    },
    {
      provide: 'RESPONSE',
      useValue: RESPONSE
    }
  ],
  bootstrap: [AppComponent],
})
export class AppServerModule {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...