javascript - Mongoose.js 通过一次 connect() 调用创建与 MongoDB 的多个连接

标签 javascript node.js mongodb express mongoose

我正在 Node.js Express 应用程序中通过 Mongoose 与 MongoDB 建立单一连接:

var express = require('express');
var mongoose = require('mongoose');
mongoose.connect('localhost', 'test');

然后,我定义架构,然后是模型,最后是从数据库中提取所有用户的 Controller :

app.get('/users', function (req, res) {
  return User.find(function (err, users) {
    if (!err) {
      return res.send(users);
    }
  });
});

这些数据库连接在应用程序启动期间打开,并在 Node.js 应用程序运行期间保持打开状态。

令我困扰的是为什么我有 5 个打开的连接?一旦我关闭 node.js 应用程序,所有 5 个连接都会关闭。 enter image description here

相关说明:对于 REST API 服务器,最好让 MongoDB 连接始终打开。或者根据每个用户请求手动打开/关闭连接是否更好? d

最佳答案

这是因为 Mongoose 使用一个由 5 个连接组成的池(默认情况下),这些连接在整个应用程序中共享。为了获得最佳性能,最好将它们保持打开状态。

您可以通过 mongoose.connect 的选项参数更改默认行为。例如:

mongoose.connect('localhost', 'test', { server: { poolSize: 3 }}); // Use 3 connections

关于javascript - Mongoose.js 通过一次 connect() 调用创建与 MongoDB 的多个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49403281/

相关文章:

javascript - 如何让多个球在点击时掉落?

javascript - 相当于 Javascript 中的 Ruby Enumerable#each_slice?

Javascript:在 Node.js 对象内调用函数

javascript - Node.js:解析 JSON 对象

javascript - 'book' 已定义但从未使用 MEAN 堆栈 Controller

javascript - 如何使用 Jquery typeahead.js 插件从搜索输入中选择多个选项

node.js - 如何使用 { $text : { $search: search } } within sails-mongodb?

node.js - 在 MongoDB 中查找具有非典型限制的文档

java - 写入 MongoDB 时有哪些 Java 模型对象选项可用?

javascript - 如何构建我的 nodejs 代码?胖模型/瘦 Controller