Я пытаюсь получить куки со стороны сервера, чтобы справиться с этим использованием @ 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 {}