2017-01-16 14 views
1

私は現在、電子を使用してプロジェクトに取り組んでいます(基本的にはクロムとnodejs)プラスAngular2永続活字体

ファイルにtypescriptですオブジェクトを保存するにはどのような方法がありますを使用していますか?

現在、オブジェクトをjsonファイルに保存しています。問題は、すべてのオブジェクトメソッドが失われていることです。

__proto__変数を保存してください。

フレームワークまたは特別なデータベースエンジンを使用する必要がありますか?

今日私はjsonファイルからオブジェクトを読み込み、JSON.parseを使用して解析しています。それから私は、任意の提案は、事前に

おかげで歓迎されているスケーラブル

ない新しいオブジェクト内のすべてのプロパティを再割り当てします。ホセ・

+0

永続化フレームワークでは、何らかの並べ替えパターンを指定する必要があると思います。私はnodejのORMを認識していませんが、自分で行う必要があれば、直列化プロトコルを定義することから始めます。 – Sebas

+1

すべては、プロジェクトの具体的なニーズによって異なります。私はタイプの有限集合をサポートする特別なシステムでそれをやった。シリアライゼーションは、型を数値として記録し、次にコンストラクタに渡す必要のあるパラメータを記録します。デシリアライザは型番号をコンストラクタに変換し、引数をコンストラクタに渡すことによってオブジェクトをインスタンス化します。これは長年にわたって非常にうまくいっています。それが設計されたプロジェクトは、もっと洗練されたものから恩恵を受けることはありません。他のプロジェクトでは、この解決策が不十分な他のニーズがあります。 – Louis

答えて

1

あなたが好きなJSONなどの変数をエクスポートすることができます。

myJsons.ts

myComponent.ts

よう

export var myVar = { 
    name: "John" 
} 

とあなたのTS内でそれらを使用したファイルを

import {myVar} from '../path-to-myJsons' 

this.myJson = myVar; 
this.name = this.myJson.name; 
+0

彼の問題は私的メンバーが消えていくことだと思います。 – Sebas

+0

@Sebasああ、私はこの問題を誤解した。OPでこれを明確にすることはできますか? – echonax

+0

問題は、オブジェクトをファイルに保存すると、すべてのクラス "メタ"(パブリックメソッドとプライベートメソッド)が失われることです。 オブジェクト全体をファイルに保存する方法を見つける必要があります(json、text、binary ...私は気にしません)。 @Louisが書いたように、オブジェクトのシリアライズは解決策です –

1

私はOPです!

私はどうやら、そう

https://www.npmjs.com/package/serializer.ts

問題を解決するため、このライブラリを行うには見つけますか?どのように の代わりにユーザオブジェクトの配列をユーザに持っているのですか?解決策は、ユーザー オブジェクトの新しいインスタンスを作成し、すべてのプロパティを新しいオブジェクトに手動でコピーすることです。

代替手段?はい、このライブラリを使用できます。このライブラリの目的 は、あなたが作成したクラス のインスタンスにプレーンなjavascriptオブジェクトをマップするのに役立ちます。

私はショットとフィードバックを与えます。ベストプラクティス

+0

このライブラリを使用しましたか?それは良いことだった? – sct999

+0

こんにちは@ sct999。はい、うまくいきました。しかし、時間があれば、シリアル化するための他の選択肢をチェックしてください。 その特定の問題を解決する機会に私がやったのは、汚いトリックでした。JSON.stringify(オブジェクト)とJSON.parse()を使ってオブジェクトをテキストファイルに保存しました。 どこか読んでいましたそれを行う最速の方法は、参照を覚えていないことができます、ごめんなさい。 ベストセラー –