• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    关于mongoose连接mongodb重复访问报错的解决办法
    POST TIME:2021-10-18 21:36

    具体代码如下所示:

    var express = require('express');
    var mongoose = require('mongoose');
    var router = express.Router();
    var Person = mongoose.model('Person',{
     id:Number,
     name:String
    });
    /*新增*/
    router.get('/insert', function(req, res){
     var student = new Person({
      id:1,
      name:"huop"
     });
     mongoose.connect("mongodb://localhost:27017/test");
     student.save(function(e, product, numberAffected) {
      if (e) res.send(e.message);
      var html = "
    新增的数据为:" + JSON.stringify(product);
      html += "
    影响的数据量为:" + numberAffected;
      res.send(html);
     });
    });
    router.get('/find',function(request, response){
     mongoose.connect("mongodb://localhost:27017/test");
     Person.find({
      id: 1
     }, function(e, docs) {
      if (e) response.send(e.message);
      var html = "
     查询到的数据为:" + JSON.stringify(docs);
      response.send(html);
     });
    });

    以上代码可以正常执行,但是有个问题,就是第一次访问的时候正常,但是刷新一遍就会报错,Trying to open unclosed connection.undefined
    Error: Trying to open unclosed connection.

    应该是重复打开连接失败报错,所以需要关闭连接,我加了一段关闭连接的代码,结果查询结果就成了:查询到的数据为:unde

    那么该如何处理mongodb数据库连接?

    解决办法如下所示:

    新建一个mongoose.js:

    var mongoose = require(‘mongoose');
    mongoose.connect(‘mongodb://localhost/nuaidibi');
    module.exports = mongoose;

    每个module中,引用

    var mongoose = require('./mongoose.js');下面使用就一样了,不用开关连接。

    您可能感兴趣的文章:
    • MongoDB启动报错 28663 Cannot start server
    • MongoDB添加仲裁节点报错:replica set IDs do not match的解决方法
    • NodeJS连接MongoDB数据库时报错的快速解决方法
    • perl操作MongoDB报错undefined symbol: HeUTF8解决方法
    • Mongodb 崩溃报错 Too many open files的问题解析
    上一篇:CentOS安装和设置MariaDB的教程
    下一篇:MariaDB中1045权限错误导致拒绝用户访问的错误解决方法
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信