我尝试使用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) 我尝试在 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) 我有一个在安装了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) docker ×2
kubernetes ×2
angular ×1
javascript ×1
mysql ×1
nginx ×1
proxy ×1
rxjs ×1
typescript ×1