typescript nedb使ってみた

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript nedb使ってみた相关的知识,希望对你有一定的参考价值。

const Datastore = require("nedb");
const db = new Datastore({ filename: "data/test.db", autoload: true });

const testDoc = {
  name: "testName",
  value: "testValue",
  number: 13456
};
db.insert(testDoc, (error, document) => {
  console.dir(document);
  console.error(error);
});

db.find({ name: /test/ }, (error, document) => {
  console.dir(document);
  console.error(error);
});
/*
 Ionic上でProviderとして使うのを想定して組んでみたテスト
 Androidエミュレータでも動いてびっくり
*/
import { Injectable } from "@angular/core";
import * as Datastore from "nedb";

@Injectable()
export class NedbProviderSample {
  filename: string = "data/database.db";
  dataStore: Datastore;
  constructor() {
    console.log("Hello ChatLogProvider Provider");
    this.dataStore = new Datastore({ filename: this.filename, autoload: true });
  }

  /**
   * レコードの新規作成
   * @param document Object 書き込むドキュメントをJSONオブジェクトで指定
   * @return targetKey:string 発行されたレコードキーをstringで返す
   */
  public create(document: object): Promise<object> {
    return new Promise((resolve, reject) => {
      this.dataStore.insert(document, (error, result) => {
        if (error) {
          reject(error);
        } else {
          resolve(result);
        }
      });
    });
  }

  /**
   * レコードの削除
   * @param targetKey 削除対象のレコードキー
   * @return bookean 削除の成否をbooleanで
   */
  public delete(targetKey: string): Promise<boolean> {
    return new Promise((resolve, reject) => {
      this.dataStore.remove({ _id: targetKey }, {}, (error, result) => {
        if (error) {
          reject(error);
        } else {
          resolve(result);
        }
      });
    });
  }

  /**
   * レコードの検索
   * @param param0 {
   *  targetFieldName : 検索対象のフィールド名
   *  queryString: 検索に使用されるクエリ文字列
   * }
   * @return Array<object> 検索結果をドキュメントObjectのArrayで
   */
  public findRecords({ targetFieldName: targetFieldName, queryString: queryString }): Promise<Array<object>> {
    return new Promise((resolve, reject) => {
      let queryObject;
      if (queryObject) {
        queryObject = { targetFieldName: queryString };
      } else {
       // find()に渡す検索オブジェクトを空っぽにすると、全件返ってくる
        queryObject = {};
      }
      this.dataStore.find(queryObject, (error, result) => {
        if (error) {
          reject(error);
        } else {
          resolve(result);
        }
      });
    });
  }
}

以上是关于typescript nedb使ってみた的主要内容,如果未能解决你的问题,请参考以下文章

csharp コードの秘诀は吉斯特に移行します。今まではEvernote的に全てまとめていたけれど,吉斯特だとコードのシンタックスハイライトが效いて便利なので,コード部分に关しては要点を使ってみたいと

html 円盘上のリンクを作ってみた

c_cpp LSコマンドを作ってみた

scss チップラボ:deveiceLightイベントを使ってみる

ruby Ohaiを単体で使ってみる。参考号:https://wiki.opscode.com/display/chef/Ohai+Installation+and+Use

csharp 【执笔中】コレクション内のデータに応じて的DataTemplateを切り替えたい场合にItemTemplateSelectorを使ってみる。