【问题标题】:Node JS + MongoDB + Mongoose RangeError: Maximum call stack size exceeded ErrorNode JS + MongoDB + Mongoose RangeError:超出最大调用堆栈大小错误
【发布时间】:2016-12-28 04:35:52
【问题描述】:

当我尝试从预定义的模式中创建一个新对象并将其插入我的 mongodb 数据库时,我不断收到 RangeError。我希望有人能帮助我找出我遇到此错误的原因,并希望能给我解决此错误的方法,谢谢。

App.js

    var print = require('./print');
var port = 1338;
var express = require("express");
var app = express();
var bodyParser = require('body-parser');
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:1337/testdb';
var mongoose = require('mongoose')
var user = require('./schemas/user.js')
MongoClient.connect(url, function (err, db) {
  var collection = db.collection('users');
  if (err) {
    console.log('Unable to connect to the mongoDB server. Error:', err);
  } else {
    console.log('Connection established to', url);
  }




    app.use(bodyParser.urlencoded({ extended: true }));
    app.set('view engine','ejs');
    app.get('/', function(req,res){
          res.render("post");
          print("All is in order");
    })





    app.post('/post', function(req, res) {
      var name = req.body.name
      var email = req.body.email
      res.send(`You sent the name ${name} and the email ${email}`);
      var user1 = new user()
      user1.name = name
      user1.email = email
      collection.insert(user1, function(err,result){
      if (err) {
        console.log(err);
      } else {
        console.log('The Results', result);
      }
    })
  });


    app.listen(port,function(){
      print(`listening on ${port}`);
    })

})

用户.js

 var mongoose = require('mongoose');
var Schema = mongoose.Schema
var UserSchema = new Schema({

  name: {type: String},
  email:{type: String}

});
module.exports = mongoose.model('User', UserSchema);

Post.ejs

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>CSS3 Contact Form</title>
</head>

<body>
    <div id="contact">
        <h1>Send an email</h1>
        <form action="http://127.0.0.1:1338/post" method="post">
            <fieldset>
                <label for="name">Name:</label>
                <input type="text" id="name" name="name" placeholder="Enter your full name" />

                <label for="email">email:</label>
                <input type="email" id="email" name="email" placeholder="Enter your email" />


                <input type="submit" value="Send message" />
            </fieldset>
        </form>
    </div>
</body>

</html>

错误:

RangeError: 超出最大调用堆栈大小 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:49:26) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:38:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:28:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:38:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:38:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:28:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:38:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:38:22) 在 calculateElement (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:123:77) 在 calculateObjectSize (C:\Users\Programming\Documents\Web_Repo\node_modules\bson\lib\bson\parser\calculate_size.js:28:22)

【问题讨论】:

    标签: javascript node.js mongodb express


    【解决方案1】:

    尝试使用下面的代码

    app.post('/post', function(req, res) {
      var name = req.body.name
      var email = req.body.email
      res.send(`You sent the name ${name} and the email ${email}`);
      var user1 = {};
      user1.name = name;
      user1.email = email;
      collection.insert(user1, function(err,result){
      if (err) {
        console.log(err);
      } else {
        console.log('The Results', result);
      }
    })
    });
    

    【讨论】:

      猜你喜欢
      • 2020-04-14
      • 2012-05-27
      • 2014-08-19
      • 2013-08-18
      • 2021-09-21
      • 2018-07-29
      • 2018-02-06
      相关资源
      最近更新 更多