私はクライアント側からポストを得るたびに、サーバー側としてjavascript nodejsを使用して、データを検証し、各キー/値のデータ構造が存在することを確認します。私は(..)場合は、1つに、各レベルを入れて、それは長いとハードですので、JSON/JavaScriptのオブジェクトのような行を変更することはできませんので、私は疑問に思うポストjsonデータサーバー側を確認する
これを行うには、任意のより良いアイデアは、
多分ずっと読めるあり維持する。
通常、これを行う方法は?
正しいjsonオブジェクト構造を作成し、ポストデータと比較しますか?
ようにする必要があります任意の提案が
正しいデータを認めるようになります。
request.data = {
"user": {
"status": "int",
"role": {
"role": "int"
},
"information": {
"email": "text",
"password": "text",
"username": "text",
"country": "text",
... a lot ....
}
},
}
サーバ側、私は正しいJSONを設定しよう
var validateRequest = 'true';
if (typeof request.data.user == 'undefined') {
validateRequest = 'false';
} else {
if (typeof request.data.user.status == 'undefined' || typeof request.data.user.role == 'undefined' || typeof request.data.user.information == 'undefined') {
validateRequest = 'false';
} else {
if (typeof request.data.user.role == 'undefined' || typeof request.data.user.information.email == 'undefined' ...) {
validateRequest = 'false';
}
}
}
if (validateRequest != 'false') {
// validate data type
// use data crud
}
更新
を検証サーバー内の構造側、およびポストと比較し、 は、私はいくつかのJSON差分moduleを見つけましたが、あなたは、要求の構造の違いを観察するjsondiffpatchモジュールを利用することができる唯一のキー
var a = {
"information": {
"email": "text",
"password": "text"
}
}
var b = {
"information": {
// "email": "text",
"password": "text"
}
}
console.log(jsondiffpatch.diff(a, b));
I only know if data not different will get undefined
if b remove "email"
get this in console ?? ¨ information: ¨ email: ÿ 'text', 0, 0 ¦ ¼ ¼
if b email val = textt
get this information: ¨ email: ÿ 'text', 'textt' ¦ ¼ ¼
反復を設定$を確認してください動作します。 – mehulmpt
ライブラリを使用することができれば、私は[joi](https://github.com/hapijs/joi)がオブジェクト検証のために働くことができます。 – wolfemm
@wolfemmはとてもクールだと私は今試してみるよ – user1575921