2016-08-04 13 views
0

初心者向けのチュートリアル「シンプルトゥード」をやっていて、ステップ9でセキュリティを追加すると、それ以前に作成したタスクを削除できなくなったことに気付きました。this._idがオブジェクトを返すときにthis._idからIDだけを取得する方法は?

問題は、私のremoveメソッドが文字列であり、this_.idを使用したときにコンソールから以前に行われたタスクがオブジェクトを返すことを確認することです。 - >のObjectId( "57a128afbe5fd7e7ba9a6fca")Tasks.insert方法で作成 タスク、this._id - > "57a128afbe5fd7e7ba9a6fca"

そして端子を介して作成されたタスク、this._idは:すなわち

新しいremoveメソッドはObjectId部分が気に入らない。どうすればIDを取得できますか?私はそれがthis._id._idのようなものになると考えていますが、それは未定義です。回避策は、安全性の低い「削除」メソッドからチェックを削除することでした。

リンク:https://www.meteor.com/tutorials/blaze/security-with-methods

+0

を使用する必要があるかどうかを確認するために、クライアントのチェックを行うだろう挿入中に文字列 '_id'を明示的に指定しない限り、文字列の代わりに常に' ObjectId() 'を取得します。 –

答えて

1

あなたがのObjectIdの六角部分を取得するためにthis._id._strを使用することができます。

私はあなたのメソッドは文字列のみを使用することを示唆している、とあなたはコンソールあなた'LLから挿入するとthis._idまたはthis._id._str

+0

ありがとう!下線について特別なことはありますか?それとも、始めにアンダースコアを付けてプロパティに名前を付けるだけの規則ですか?例えばPythonでは、_や_がいくつかの属性/メソッドのプライバシーのために使われることがあります。他の開発者に「これらを直接使用しないで、隠されることを意味します。 –

+0

実際に私がここで作業しているオブジェクトについてもっと知ることができますか?私は_idと_str以外にも使えるものはありますか?これは特に有用ではありませんhttps://docs.meteor.com/api/collections.html#Mongo-ObjectID 私は、実行する可能性がある組み込み関数やオブジェクトについて説明していますか?うまくいけばいくつかの例がありますか?ストライプのように、私がPythonでそれを扱ったとき、apiのドキュメントは素晴らしかったです。 –

+0

アンダースコアは単なる規則です。それは内部を意味しますが、あなたがそれを使用するのを止めるものは何もありません。オブジェクトをコンソール(console.log(this))に出力すると、そのオブジェクトを検査して何が入っているかを見ることができます。 ChromeとFirefoxでは、F12キーを押してコンソールを開きます。 –

関連する問題