如何在 angular 7 服务器端渲染中处理 cookie
How handle cookies in angular 7 server side rendering
我最近在我的 angular 7 SEO 项目中实施了 SSR。我一直在使用 ngx-cookie-service。当我第一次 运行 使用 SSR 的应用程序时,我注意到一个错误,罪魁祸首是 this.cookieService.check 在尝试呈现该应用程序时。在我的一个组件中,我在 ngOnInit() 中执行了一个方法调用,它执行以下操作:
const exists = this.cookieService.check('cookiename');
if (exists) {
showSpoilerCookieValue = this.cookieService.get('cookiename');
}
我暂时删除了调用此逻辑以使应用程序正常工作的方法。
我怎样才能让它工作?有没有更好的 cookie 的 NPM 包?
我看到帖子推荐 ngx-utils/cookies。但是它似乎不支持 @nguniversal/express-engine
。有一个拉取请求修复这个 git pull that allows express-engine。 ngx-utils/cookies
我愚蠢地浪费了时间获取 ngx-utils/cookies、应用 pull、用最新的 angular 升级 package.json,但最终没有得到测试,因为我 运行没时间了。在走这条路之前,我应该做更多的研究。
是否有适用于 angular 7 SSR 的软件包 cookie?我现在在 angular 7.1。
正在使用
@ngx-utils/cookies
您需要检查您是否在浏览器中
import { isPlatformBrowser } from '@angular/common';
import { CookiesService } from '@ngx-utils/cookies';
constructor(
private cookieService: CookiesService,
@Inject(PLATFORM_ID) private platformId: Object
) {}
isLoggedIn(): Promise<boolean> {
return new Promise<any>((resolve, reject) => {
if (isPlatformBrowser(this.platformId)) {
// get the cookie here
this.cookieService.get('token')
resolve('something here')
}
});
}
希望对您有所帮助!! ...同样的事情,如果你想使用 window 对象,你需要做
...
if (isPlatformBrowser(this.platformId)) {
window.scrollTop() // or whatever you do with window object
}
我最近在我的 angular 7 SEO 项目中实施了 SSR。我一直在使用 ngx-cookie-service。当我第一次 运行 使用 SSR 的应用程序时,我注意到一个错误,罪魁祸首是 this.cookieService.check 在尝试呈现该应用程序时。在我的一个组件中,我在 ngOnInit() 中执行了一个方法调用,它执行以下操作:
const exists = this.cookieService.check('cookiename');
if (exists) {
showSpoilerCookieValue = this.cookieService.get('cookiename');
}
我暂时删除了调用此逻辑以使应用程序正常工作的方法。
我怎样才能让它工作?有没有更好的 cookie 的 NPM 包?
我看到帖子推荐 ngx-utils/cookies。但是它似乎不支持 @nguniversal/express-engine
。有一个拉取请求修复这个 git pull that allows express-engine。 ngx-utils/cookies
我愚蠢地浪费了时间获取 ngx-utils/cookies、应用 pull、用最新的 angular 升级 package.json,但最终没有得到测试,因为我 运行没时间了。在走这条路之前,我应该做更多的研究。
是否有适用于 angular 7 SSR 的软件包 cookie?我现在在 angular 7.1。
正在使用
@ngx-utils/cookies
您需要检查您是否在浏览器中
import { isPlatformBrowser } from '@angular/common';
import { CookiesService } from '@ngx-utils/cookies';
constructor(
private cookieService: CookiesService,
@Inject(PLATFORM_ID) private platformId: Object
) {}
isLoggedIn(): Promise<boolean> {
return new Promise<any>((resolve, reject) => {
if (isPlatformBrowser(this.platformId)) {
// get the cookie here
this.cookieService.get('token')
resolve('something here')
}
});
}
希望对您有所帮助!! ...同样的事情,如果你想使用 window 对象,你需要做
...
if (isPlatformBrowser(this.platformId)) {
window.scrollTop() // or whatever you do with window object
}