2017-01-04 4 views
0

Node.js/Javascriptを使用してオブジェクトを文字列に変換しようとしているときに、次のエラーが発生します。Node.jsを使用してオブジェクトを文字列に変換するときに型エラーが発生する

TypeError: Converting circular structure to JSON 
    at Object.stringify (native) 
    at exports.userlogin (/opt/lampp/htdocs/FGDP/route/route.js:11:19) 
    at Layer.handle [as handle_request] (/opt/lampp/htdocs/FGDP/node_modules/express/lib/router/layer.js:95:5) 
    at next (/opt/lampp/htdocs/FGDP/node_modules/express/lib/router/route.js:131:13) 
    at Route.dispatch (/opt/lampp/htdocs/FGDP/node_modules/express/lib/router/route.js:112:3) 
    at Layer.handle [as handle_request] (/opt/lampp/htdocs/FGDP/node_modules/express/lib/router/layer.js:95:5) 
    at /opt/lampp/htdocs/FGDP/node_modules/express/lib/router/index.js:277:22 
    at Function.process_params (/opt/lampp/htdocs/FGDP/node_modules/express/lib/router/index.js:330:12) 
    at next (/opt/lampp/htdocs/FGDP/node_modules/express/lib/router/index.js:271:10) 

私は以下のコードを説明しています。

exports.userlogin=function(req,res){ 
    var username=req.body.user_name; 
    var password=req.body.user_pass; 
    var ciphertext = CryptoJS.AES.encrypt(password, 'lexelPass'); 
    var pass=JSON.stringify(ciphertext); 
} 

は、ここで私は、データ型がオブジェクトであるciphertext変数を取得していますし、私はそれを文字列に変換する必要があります。しかし、ここで私はこの種のエラーが発生しています。この問題を解決するのを手伝ってください。

+0

は、コンソールと 'ciphertext'の戻り値の型を見ましたか? どのようなタイプですか? – ricky

+1

ここで '暗号文 'とは'単語配列 'か'バイト配列 'のどちらかであり、オブジェクトではないと思います。必要な変換を最初に行います。 – nashcheez

+0

@ricky:それは型 'オブジェクト'を与えます。 – satya

答えて

2

オブジェクトリターンby CryptoJS.AES.encrypt(password, 'lexelPass')ステートメントはCircularタイプです。円形タイプだから、この事に取り組むために、我々は2番目のパラメータとしてJSON.stringifyで代用コールバック関数を利用することができ

var obj = {}; 
 
obj.obj = obj;

のようなものです。円形オブジェクトを捨てるためのロジックを置換機能に入れます。

check syntax at MDN for replacer

関連する問題