首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >它不能从Ionic连接到我的远程数据库

它不能从Ionic连接到我的远程数据库
EN

Stack Overflow用户
提问于 2019-12-04 20:16:40
回答 1查看 43关注 0票数 0

我在Fauxten上创建了一个数据库,现在我正在尝试将它连接到我的项目中。我可以在浏览器上打开链接,但当我尝试在应用程序中调用它时,没有任何反应。我看不出我遗漏了什么

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import PouchDB from 'pouchdb';
import { HttpClient } from '@angular/common/http';


@Injectable({
  providedIn: 'root'
})

export class ApiService {
  private db;
  url = 'http://localhost:5984/_utils/#database/grundbaustein/_all_docs';
constructor(private http: HttpClient) { }


  setUpPDB() {
    this.db = new PouchDB(this.url);
  }

  getdataDB() {
    this.http.get(this.url).subscribe((res) => {
      console.log(res);
    });

    }

  }

我想用来访问我的数据库的服务

代码语言:javascript
复制
import { Component } from '@angular/core';
import { ApiService } from '../api.service';
@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage  {

  constructor(private api: ApiService) { }

ionViewDidLoad() {
this.api.setUpPDB();
this.api.getdataDB();

  }
}

这就是我的Page.ts,我想在这里使用我从数据库中获得的信息。

代码语言:javascript
复制
{
  "name": "firstapp",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "~8.1.2",
    "@angular/core": "~8.1.2",
    "@angular/forms": "~8.1.2",
    "@angular/platform-browser": "~8.1.2",
    "@angular/platform-browser-dynamic": "~8.1.2",
    "@angular/router": "~8.1.2",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/http": "^5.17.1",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic/angular": "^4.7.1",
    "@types/pouchdb": "^6.4.0",
    "cordova-plugin-advanced-http": "^2.3.0",
    "core-js": "^2.5.4",
    "pouchdb": "^7.1.1",
    "rxjs": "~6.5.1",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/architect": "~0.801.2",
    "@angular-devkit/build-angular": "~0.801.2",
    "@angular-devkit/core": "~8.1.2",
    "@angular-devkit/schematics": "~8.1.2",
    "@angular/cli": "~8.1.2",
    "@angular/compiler": "~8.1.2",
    "@angular/compiler-cli": "~8.1.2",
    "@angular/language-service": "~8.1.2",
    "@ionic/angular-toolkit": "^2.1.1",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.4.3"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-advanced-http": {}
    }
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-12-04 20:23:52

您并不是在ionViewDidLoad中调用getdataDB,而只是在调用setUpPDB。因此,不会调用该方法,也不会发出get请求

更新

ngOnInit不会像ionViewDidLoad那样工作,因为它只在组件创建时工作一次,而不是每次导航到离子页面时都起作用。但是尝试一下这个,看看你是否已经找到了这个组件

试试这个,让我知道会发生什么:

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import { ApiService } from '../api.service';
@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {

  constructor(private api: ApiService) { }

  ngOnInit() {
    this.api.setUpPDB();
    this.api.getdataDB();

  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59175873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档