2017-11-14 20 views
0

私はエクスプレスのリクエストオブジェクトをマングースモデルで保存しようとしています。 私はこのエラーを取得する:エクスプレスリクエストobjをmongodbに保存

RangeError: Maximum call stack size exceeded

とコールスタックはすべてに約ある:

at calculateElement (/home/cyprien/apacheDocumentRoot/the-dumb-web-endpoint/node_modules/bson/lib/bson/parser/calculate_size.js:49:26)

私は、オブジェクトが大きすぎると思います。限界を増やす方法はありますか?

マングースモデル:

const mongoose = require('mongoose'); 

const visitSchema = new mongoose.Schema({ 
    timestamp:{type: Date, index:true }, 
    req: mongoose.Schema.Types.Mixed 
}); 

const Visit = mongoose.model('Visit', visitSchema); 
module.exports = Visit; 

コントローラー:

exports.index = (req, res, next) => { 
    const visit = {req: req, timestamp: Date.now()}; 
    visit.save(function (err, visit, numAffected) { 
     if (err) console.log(err); 
    }); 

    res.sendFile(path.join(__dirname+'/../client/build/index.html')); 
}; 
+0

はあなたのコード下さい –

答えて

0

要求オブジェクトが最大コールスタックのサイズが短い中

を超えた原因ゲッター機能の多くが含まれています。..そのあまりにも大。あなたがあなたのリクエストから必要なものを情報 より具体的である必要があり(例えば、ヘッダー、ボディ)

// index 
app.use(express.bodyParser()); 

// then your constroller 
const visit = { 
    req: req.body, 
    headers: JSON.stringify(req.headers), 
    timestamp: Date.now() 
}; 
+0

私は理解を示しました。実際には、将来的に統計情報を作成するために、最大限の情報、端末、ブラウザ、リファラー、ロケーション、ヘッダー、IPを希望します。ノードを学ぶのは役に立たないプロジェクトです。 –

関連する問題