PCがあれば何でもできる!スマートフォン用の表示で見るPCがあれば何でもできる!へっぽこアラサープログラマーが、覚えたての知識を得意げにお届けしますこの広告は、90日以上更新していないブログに表示しています。お互いにjavascriptなのに、送受信の度にjsonで表現できないオブジェクトを、元の状態に戻すのがめんどくさい。"2016-01-01T00:00:000"}としか表現できない。moment(resData.date);こんな感じにしないといけない。これが、ブラウザのリクエストをサーバーが受け取った際サーバーのレスポンスをブラウザが受け取った際の2箇所で発生するため、サーバー側とブラウザ側に同じような処理を書いているうちに、だんだん馬鹿らしくなってくる。そこで、うまく通信をシリアライズ化して、面倒を減らせないかなという目論見のもと、↓のようなコードを書いてみた。reviver);}やっていることとしては、definitionsに定義された、オブジェクトが見つかると、特殊な記法に変換する。1};console.log(serializer.serialize(reqData));だと、こんな感じの出力になる。1}後は、$serializeというキーを探して、定義をもとに変換しなおしているという流れ。ここまでできたら、expressとangularそれぞれに、このシリアライズ処理をやってもらうだけ。angular側はこんな感じ。transformRequestとtransformResponseを使って、シリアライズ処理を入れる。毎回指定するのが面倒なら、defaultのtransformに設定してもいいけど、他サーバーとの通信も考えると、ラップするような形がいいかも。'text',}).then();express側はこんな感じ。json変換時のreplacerとreviverを指定できる。}));これで後は、definitionsに書いているオブジェクトに関しては、何も考えないで受け渡しができる。deepなクローンでもない、シンプルな処理なので、重くはないはず。将範フリーランス/エンジニア(主にサーバサイド、その他広く浅く)自宅の作業場は冷蔵庫の隣。キッチンエンジニアとして日々精進しています。(1)はてなブログをはじめよう!m_doi2さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。