好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

具体代码如下所示:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

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:

?

1

2

3

var mongoose = require(‘mongoose ');

mongoose.connect(‘mongodb://localhost/nuaidibi' );

module.exports = mongoose;

每个module中,引用

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

查看更多关于关于mongoose连接mongodb重复访问报错的解决办法的详细内容...

  阅读:14次