数据库 
首页 > 数据库 > 浏览文章

关于mongoose连接mongodb重复访问报错的解决办法

(编辑:jimmy 日期: 2024/9/17 浏览:3 次 )

具体代码如下所示:

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');下面使用就一样了,不用开关连接。

上一篇:MariaDB中1045权限错误导致拒绝用户访问的错误解决方法
下一篇:CentOS安装和设置MariaDB的教程
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 SiteMap