小编Ste*_*itz的帖子

.then()永远不会在Observable.toPromise()上调用

我尝试使用angularfire2身份验证库中的令牌验证我的后端调用.我订阅了authState以获取用户令牌,并将其作为RequestOption添加到我的http请求中.

如果我在chrome调试器中设置断点,它会成功执行getAuthOptions()中的返回行,但在this.getAuthOptions().toPromise()之后,app既不调用.then()也不调用.catch()函数.

Observable用法是否有错误?我可以尝试其他方法吗?

  getPoints(): Promise<Object[]> {
    return this.getAuthOptions().toPromise()
      .then(options => this.http.get(this.baseUrl, options).toPromise())
      .then(_ => _.json().data)
      .catch(console.log);
  }

  getPointsFor(isin: String): Promise<Object> {
    return this.getAuthOptions().toPromise()
      .then(options => this.http.get(this.baseUrl + isin, options).toPromise())
      .then(_ => _.json().data[0])
      .catch(console.log);
  }

  private getAuthOptions(): Observable<RequestOptions> {
    return this.afAuth.authState.map(res => {
      if (res && res.uid) {
        const token = res.getIdToken(true);
        return new RequestOptions({
          headers: new Headers({
            Auth: `${token}`
          })
        });
      } else {
        return new RequestOptions();
      }
    });
  }
Run Code Online (Sandbox Code Playgroud)

javascript rxjs typescript angular

6
推荐指数
1
解决办法
634
查看次数

使用 Secrets 作为密码时无法连接到 Kubernetes 中的 mysql pod(拒绝访问)

我尝试在 Kubernetes 中设置一个 mysql 数据库。我配置了一个 ConfigMap 来存储数据库名称和一个包含 root 密码、用户和用户密码的 Secret。

当我之后尝试连接到数据库时(在容器内使用 mysql cli 和从外部使用 IntelliJ 数据库工具),我收到一个“错误 1045 (28000): Access denied for user 'testadm'@'localhost'(使用密码:YES )“ 错误。

我的 kubernetes.yaml 文件:

apiVersion: v1
kind: ConfigMap
metadata:
  name: db
data:
  mysql-database: database

---
apiVersion: v1
kind: Secret
metadata:
   name: db-credentials
type: Opaque
data:
  mysql-root-password: VGVzdDEyMzQK # Test1234
  mysql-user: dGVzdGFkbQo= # testadm
  mysql-password: VGVzdDEyMzQK # Test1234

---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql …
Run Code Online (Sandbox Code Playgroud)

mysql docker kubernetes

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

nginx proxy_pass导致404 Not Found页面

我有一个在安装了nginx的docker ubuntu映像中运行的角度应用程序。我想将此映像部署到Kubernetes,并使用Nginx代理将所有对/ api的调用重定向到Kubernetes中的后端服务。

我的静态Web资源位于/ var / www / html中,并将以下配置添加到/etc/nginx/conf.d中:

upstream backend-service {
  server backend-service:8080;
}

server {
  listen 80;

  location / {
    try_files $uri $uri/ /index.html;
  }

  location ^~ /api {
    proxy_pass http://backend-service;
  }
}
Run Code Online (Sandbox Code Playgroud)

在/或/#/ dashboard上访问前端服务将返回Angular页面的预期组件,但是对/ api / v1 / data的调用仅显示默认的nginx 404 Not Found页面

我需要修改什么才能将后端调用重定向到后端?

我在ubuntu 16.04上使用nginx 1.10.3,前端Dockerfile如下所示:

FROM ubuntu:16.04

# Install curl, nodejs and nginx
RUN apt-get update && \
  apt-get install -y curl && \
  curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
  apt-get …
Run Code Online (Sandbox Code Playgroud)

proxy nginx docker kubernetes

5
推荐指数
2
解决办法
6245
查看次数

标签 统计

docker ×2

kubernetes ×2

angular ×1

javascript ×1

mysql ×1

nginx ×1

proxy ×1

rxjs ×1

typescript ×1