小编Fel*_*ali的帖子

角度通用应用程序在*ngFor中从http请求呈现不完整的列表

在这个通过Angular Universal控制SSR的旅程中,我每天都会在工作日结束,面对新的问题,这些问题一直阻止我的SPA被搜索引擎正确编入索引.

我在同一版本中使用Angular 5.2.11和所有依赖项.此外,我正在使用传输状态模块来阻止浏览器应用程序中的其他http调用.

我注意到的问题是,当我执行检索结果数组的http get/post请求时,我将此数组分配给组件变量,以使用*ngFor指令呈现为列表,服务器将此列表不完整.每次重新加载页面时,渲染结果的数量是随机的,从几乎3到小于整个数组长度.

这很糟糕,因为谷歌不会知道我现有的所有网址,因为在每次尝试时都会看到一个不完整的,随机数量的结果列表.

我在ngOnInit中发出此请求并从服务中调用它,在组件中订阅它并在收到成功响应时将响应分配给组件变量.

据我所知,Angular Universal中的*ngFor应该等待所有异步调用完成.我没有使用带有Observable的异步管道,因为我需要在我的应用程序架构中手动触发此请求,但我已经测试了这种方法,它也无法工作.

有谁知道如何使通用服务器应用程序始终从http异步调用呈现完整列表?

谢谢!

server-side-rendering angular-universal ssr angular

7
推荐指数
0
解决办法
258
查看次数

Ngrx 效果:在 switchMap 内有条件地返回操作而不是 http 响应

我目前正在使用 Angular 5 应用程序,该应用程序将在 ngrx-store 中使用一些缓存策略,以允许用户查看项目并返回主列表,而无需再次发出请求。

我正在使用 Effect 请求数据并使用 reducer 根据我的 htp 响应更新我的全局状态。如您所见,成功触发 RequestPartnersSuccess 操作,错误触发 RequestPartnersFail 操作。

我的全局状态中的属性“internalAppDynamic.searchPartners.recoverLatest”指示我是否应该从缓存中恢复我的列表,在这种情况下,效果应该在这个“if”语句中返回一个方法并完成我的流。

@Effect()
  loadPartners$ = this.actions$
    .ofType(SearchPartnersActions.REQUEST_PARTNERS)
    .withLatestFrom(this.store$, (action, state) => {
      action = Object.assign(action, {recoverLatest: state.internalAppDynamic.searchPartners.recoverLatest})
      return action
    })
    .pipe(switchMap((action: any) => {
      if (action.recoverLatest) {
        return new SearchPartnersActions.RequestPartnersRecoverCache()
      }
      return this.internalPartnersService.getPartners(action.payload).pipe(
        map(partners => new SearchPartnersActions.RequestPartnersSuccess(partners)),
        catchError(error => of(new SearchPartnersActions.RequestPartnersFail(error)))
      )
    }))
Run Code Online (Sandbox Code Playgroud)

这是我的服务中的 getPartners() 函数:

getPartners (body): Observable<any> {
    return this.http
    .post(this._baseUrl + 'internal-app/get-partners', body, this.httpOptions)
    .pipe(catchError((error: any) => this.errorHandler(error)))
  }
Run Code Online (Sandbox Code Playgroud)

问题是我找不到实现这个结果的方法。我是 rxjs …

rxjs ngrx ngrx-effects angular angular5

5
推荐指数
1
解决办法
7471
查看次数

节点服务器中的Express-rate-limit与NGINX

我当前正在使用express-rate-limit模块来阻止来自ip节点服务器中相同或已登录用户帐户的多个请求,这对于抵御DoS攻击非常有效。该服务器是一家小型本地企业,只需要一个实例,因为它没有太多的用户,并且其计算要求也不太高。

nginx最近,我读了很多书,很多人建议在节点服务器中使用它,但是我看不到在这种应用程序中使用它的主要优点。

怎么会nginx是我的应用程序更好?就npm modules单个服务器应用程序的安全性而言,其他功能无法做到?

nginx rate-limiting ratelimit node.js express

5
推荐指数
1
解决办法
509
查看次数

将查询参数传递给辅助路由 Angular 5

我正在尝试将查询参数(而不是路由参数)传递给我的每一条辅助路由。

我想要实现的目标是拥有 3 个兄弟组件,每个组件都从其自己的辅助路由中订阅和使用查询参数,并使用 3 个不同的数据源填充我的页面,使分页/查询成为可能,并且每个数据源都是独立的。

我的 url 应如下所示,遵循 Angular 的辅助路由模式:

http://mywebsite.com/search(音乐:/?page=1&itemsPerPage=12&orderBy=createdAt/movies:/?page=1&itemsPerPage=12&orderBy=createdAt/tvShows:/?page=1&itemsPerPage=12&orderBy=createdAt)

然后,在我的每个组件中,我都可以订阅它的特定辅助路由更改,并在导航时触发对我的 API 的请求。

我知道这可以通过路由参数实现,但我希望能够灵活地仅输入所需的查询参数。这可以在 Angular 中实现吗?

谢谢!

routes angular angular-router angular5 angular-auxiliary-routes

5
推荐指数
0
解决办法
479
查看次数

Atom v1.32停止检测匹配标记和JavaScript语法突出显示

在v1.32.0更新之后,atom刚刚停止检测匹配的html标签,并且更改了javascript/typescript颜色方案(变量,函数,类,对象键等等).

是否有可能重新激活匹配的html标签突出显示并使用我之前已经习惯的以前的javascript颜色方案?

谢谢!

atom-editor

3
推荐指数
1
解决办法
245
查看次数