关于mongoose连接mongodb重复访问报错的解决办法
具体代码如下所示:
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 数据类型及Mongoose常用CURD
前言 看完了Node.js实战,其中在数据存储部分提到了Redis.Mongodb,我自己也根据书中的介绍写了几个简单的demo,在demo的过程首先遇到的问题就是数据类型和常见的CURD写法. mongodb的常见操作有两种方式,一个是直接使用API,也就相当于你在SQL Server客户端中使用T-SQL编写SQL语句来操作数据一样,其次就是在程序中使用mongoose驱动来操作数据,相当于我们在程序里用ADO.NET或EF来操作数据,如果你已经写了几个调用API的demo,那么我建议再回过
-
安装使用Mongoose配合Node.js操作MongoDB的基础教程
安装mongoose 使用express准备一个TestMongoDB项目,命令序列如下: express TestMongoDB cd TestMongoDB npm install 执行完上面的命令后,使用下面的命令安装mongoose: npm install mongoose --save 这个命令会安装mongoose并将其作为项目的依赖,而mongoose依赖的MongoDB driver以及regexp等等模块也会被自动安装. 实例 使用mongoose可以新建数据库.新建集合.对
-
Node.js中使用mongoose操作mongodb数据库的方法
如何利用mongoose将数据写入mongodb数据库? 1.利用npm下载安装mongoose; npm install mongoose 2.建立js文件,引入mongoose var mongoose = require('mongoose'); 3.mongoose.connect连接数据库 //连服务器 mongoose.connect('mongodb://127.0.0.1:27017/test'); //数据库的名字 var connection = mongoose.conne
-
Node.js的MongoDB驱动Mongoose基本使用教程
使用mongoose可以让我们更好使用mongodb数据库,而不需要写繁琐的业务逻辑. 安装 npm install mongoose 初始化使用 使用mongoose前,需安装node和mongodb,这里不讲node和mongodb的安装方法. var mongoose = require("mongoose"); var Schema = mongoose.Schema; var db = mongoose.connection; mongoose.connect('mongod
-
利用Mongoose让JSON数据直接插入或更新到MongoDB
前言 Nodejs基于Javascript,MongoDB脚步同样也是基于Javascript.而且他们的数据存储格式都是JSON,这就是为什么要把他们放在一起的原因了.如果程序前后端能直接处理JSON,我想数据处理过程又可以极大的减化了,代码量又将低少1/5.多么的兴奋啊!让我们来动手验证一下想法吧. 本文重点介绍web前端通过JQuery发起POST提交JSON数据,通过Mongoose直接插入或更新到MongoDB. 工程目录沿用nodejs-demo,增加/mongoose路径及对应文件
-
关于mongoose连接mongodb重复访问报错的解决办法
具体代码如下所示: 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
-
Springboot 跨域配置无效及接口访问报错的解决方法
跨域配置如下,Springboot 版本为 2.4.1 ///跨域访问配置 @Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); //sessionid 多次访问一致 co
-
Ubuntu下开启php调试模式报错信息解决办法
Ubuntu下开启php调试模式报错信息解决办法 在Ubuntu下php的缺省设置是不显示错误信息的,如果程序出错会显示"无法处理此请求的错误提示",这在开发环境下非常不方便. 其实我们只要编辑下apache的配置文件就好 1.我的apache 配置文件目录是/etc/apache2/apache2.conf sudo vim /etc/apache2/apache2.conf 再最后加入以下两行 php_flag display_errors on php_value error_r
-
docker容器调用yum报错的解决办法
dockerfile里或者在容器里执行yum,报错,找不到源(invalid baseurl xxx),但是宿主机上执行yum是没问题的啊,为什么? 因为不论是dockerfile使用RUN关键字执行yum还是直接进入到容器里面执行yum,它们都是使用的docker镜像里面的源(CentOS是在路径/etc/yum.repo.d/CentOS-Base.repo),所以你要把宿主机上的同路径下的源拷贝到容器里面,然后docker commit一个新的"基础镜像",这个时候使用docke
-
Vue3发送post请求出现400 Bad Request报错的解决办法
查了一下网上资料,报400一般无非就是两种: 1. Bad Request:“错误的请求" 2. Invalid Hostname:"不存在的域名” 在这里我的报错是因为前端请求头的content-type和后端不一致. 一般后端默认的内容类型是 application/x-www-form-urlencoded,而axios默认的是 applecation/json. 但是也有例外,要根据后端的注解来区分我们要转换的类型. 根据上一篇笔记上说的: @RequestBody 用 con
-
未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序报错的解决办法
错误描述: 在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错: "未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序" 代码示例: static void Main(string[] args) { readexcel("D:\\test\\xlsxtest.xlsx"); } public static void readexcel(string _path) { Da
-
npx create-react-app xxx创建项目报错的解决办法
手头有一台大学时代的Windows电脑,它此前没有装过create-react-app,只装了node环境.版本信息:node -> 10.16.3,npm -> 6.9.0.前几日闲的无事想给它装个React,结果失败了,报了错,所以有了下面这出. 安装过程 根据React官方文档(上图)可以发现,此时并不需要安装create-react-app工具,只要你的node >= 8.10 && npm >= 5.6,就可以直接使用npx create-react-ap
-
Mybatis返回int或者Integer类型报错的解决办法
会报错如下: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.bill.springMybatis.dao.UserDao.getUserIdByName attempted to return null from a m
-
详解docker中使用systemctl启动服务报错的解决办法
docker版本: [root@localhost gae_proxy]# docker version Client: Version: 1.10.3 API version: 1.22 Package version: docker-common-1.10.3-46.el7.centos.10.x86_64 Go version: go1.6.3 Git commit: d381c64-unsupported Built: Thu Aug 4 13:21:17 2016 OS/Arch: l
-
MySQL中Multiple primary key defined报错的解决办法
创建主键可以有两种方式: create table 表名( 字段名 类型, 字段名 类型, -- primary key(name) ); 或者是 create table 表名( 字段名 类型 primary key, 字段名 类型, -- ); 但是要注意的是,想要创建复合主键,就不可以用第二种方式. 下面列举一个小例子: 这里报错Multiple primary key defined,表示定义了多个主键,正确的写法是如下: 如果项设置复合主键,复合主键的特点是同时创建.同时删除,所以需要
随机推荐
- 浅谈网页中的相对路径和绝对路径
- 用批处理去掉快捷方式上的小箭头图案的代码
- iOS使用runtime修改文本框(TextField)的占位文字颜色
- JavaScript eval() 函数介绍及应用示例
- CORBA对象生命周期之实现和内存管理
- MySQL中Order By多字段排序规则代码示例
- JS获取浮动(float)元素的style.left值为空的快速解决办法
- Ruby实现的各种排序算法
- Python中获取对象信息的方法
- C++ 迷宫游戏实现代码
- java的多线程用法编程总结
- linux实现除了某个文件或某个文件夹以外的全部删除
- Java的二叉树排序以及遍历文件展示文本格式的文件树
- java实现的小时钟示例分享
- Kotlin 与 Java基本语法对比
- Java开发者就业需要掌握的9大专业技能
- mac 下安装php7全过程介绍
- Spring整合Springmvc的相关介绍
- 详解.net core webapi 前后端开发分离后的配置和部署
- vue通过数据过滤实现表格合并