2017-09-25 8 views
0

まずはstackOverFlowの最初の質問ですので、私の質問にもっと詳しくお答えいただければ幸いです。レスポンスオブジェクトをmongooseに保存する際にエラーが発生しました

私はクライアントアプリケーション(アンドロイド、イオスなど)で次のことをやりたいrestfullAPIプロジェクトを作成しています。 私のコードでは、私のAPIを使用したいアプリケーションはまずチケットを要求する必要がありますサーバーはそれらにチケットを渡します。アプリケーションとクライアントの両方がHTTPリクエストを送信すると、クライアントはクエリパラメータとしてticketIdを使用してSpicific URLを訪問してブラウザにリクエストを送信し、アプリケーションに自分の/アプリケーションはHTTP要求を送信し、クライアントがアクセスを許可し、アプリケーションが通知を受けるのを待ちます。

sooo ...基本的に私は、アプリケーションの要求のresオブジェクトを保存してから、クライアントのミドルウェアの流れでそれに応答します。 :)

しかし、私は解像度を保存しようと、私はこのエラーを取得マングース経由モンゴにオブジェクト:

例外RangeError:最大コールスタックのサイズは、ここで

を超えて私の関連するコードです:

これがされ私のルータ(最初のものはアプリケーションのリクエスト用、もう1つはクライアントのリクエスト用です)。

router.post('/test', function (req, res, next) { 
    var t = new testRes({res:res}); 
    t.save(function (err, res) { 
     console.log('1 -- E :: ',err); 
     console.log('1 -- ::',res); 
    }) 
}); 
router.post('/test2',function (req, res, next) { 
    testRes.findById(req.body.id,function (err, res) { 
     console.log('2 -- E :: ',err); 
     res.json(req.body.msg); 
    }) 
}); 

、これが私の解像度のマングースモデルです:

var mongoose = require('mongoose'); 
var schema = mongoose.Schema; 

var testSchema = schema({ 
    res : {type :schema.Types.Mixed} 
}); 

module.exports = mongoose.model('testres',testSchema); 

あなたは私は私のプロジェクトを設計することができると思い、別の方法がある場合は、それを言うならば、私は感謝するだろう、と私もそれの要求を送信して自分のアプリケーションを作ることについて考え毎分またはこれを行うための底を持っていますが、これらの解決策はこのソリューションほど上品ではありませんでした

ところで、すべてのresオブジェクト情報をjest res.sendに保存する必要がありますか?

答えて

0

ノードアプリケーション内に完全なresオブジェクトを保存しようとしませんでした。問題があるかもしれません、resはこの方法で保存するには長すぎるようです。

一部のユーザーを認証するためのチケットシステムが必要な場合は、passportjsを使用することをお勧めします。これはあなたのAPIには完全に機能します。ここに例があります(うまくいくはずですが、試してみませんでした) https://www.djamware.com/post/58bd823080aca7585c808ebf/nodejs-expressjs-mongoosejs-and-passportjs-authentication

関連する問題