используя sqlite в качестве базы данных для angular v7 - PullRequest
2 голосов
/ 31 марта 2019

Я строю небольшой SPA с угловой и, поскольку я новичок в угловой, я использую учебное пособие по угловым диаграммам в качестве дорожной карты для моего приложения. все работает, находят, пока не получат данные из базы данных sqlite (из-за ограничений реализации использование любого другого типа внутреннего кода невозможно). учебник (https://angular.io/tutorial/toh-pt6) использует базу данных в памяти, которая, очевидно, мне не подходит. Мне нужна служба, которая извлекает данные из sqlite и может быть внедрена в компонент

компонент

   import { Component, OnInit } from '@angular/core';
   import { Areport } from '../../classess/areport';
   import { ReportService } from "../../services/report.service";
@Component({
  selector: 'app-daily-report',
  templateUrl: './daily-report.component.html',
  styleUrls: ['./daily-report.component.css']
})
export class DailyReportComponent implements OnInit {
  reports : Areport[];
  constructor(private reportService: ReportService) { }
  getReports(): void {
    this.reportService.getReports()
        .subscribe( reports => this.reports = reports)
  }
  ngOnInit() {
    this.getReports();
  }
}

ReportService

import { Injectable } from '@angular/core'; 
import { Observable, of } from "rxjs";
import { Areport } from "../classess/areport";
import { MessageService } from "./message.service";
import { SqlitedbService } from "./sqlitedb.service";

@Injectable({   providedIn: 'root' })


export class ReportService {

  constructor( private messageService: MessageService) { } 
  getReports(): Observable<Areport[]>{
    this.messageService.add('reportService: fetched reports');
    return of(SqlitedbService.R()); 


} 

sqlite service

import { Injectable } from '@angular/core';
const  sqlite3 = require('sqlite3').verbose();

let db = new sqlite3.Database('../../db/my.db');
let reports : any
db.all("SELECT * FROM reports",[],(err:any,rows:any)=>{
  reports=rows;
})

@Injectable({
  providedIn: 'root'
})
export class SqlitedbService {

  constructor(){}
  R(){ return reports};
}

Я не смог найти учебник по использованию sqlite в угловых, кроме этого (https://github.com/leota/electron-angular4-sqlite3/blob/master/src/app/app.component.ts), который я понятия не имею, что он делает, и ни того, ни другого не стоит пытаться добавить больше слоев, таких как электрон

для меня идеальным вариантом будет функция класса, которую я могу использовать в своем сервисе для возврата результата запроса и выполнения оператора вставки

также этот фрагмент кода JS прекрасно работает в узле, но я не знаю, как использовать его в угловых

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./my.db')
db.each("SELECT * FROM reports", function(err, row)  {
  console.log(err+"   "+row.id + ": " + row.txt);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...