表达 MongoDB 连接池

MongoDBの定義

image.png

源头

var express = require("express");
var app = express();

const MongoClient = require('mongodb').MongoClient;

const testRouter = require('./routers/test');

MongoClient.connect('mongodb://db', { minPoolSize: 20, maxPoolSize: 20 }, async (error, client) => {
  if (error) {
    console.log('error :', error);
  } else {
    // req.app.locals.dbでアクセスできるように設定
    app.locals.db = client.db('test_db');
    // add Router
    app.use('/test', testRouter);
    // start express server
    var server = app.listen(3000, function(){
      console.log("Node.js is listening to PORT:" + server.address().port);
    });
  }
})
var express = require('express')
var router = express.Router()

router.get('/', async (req, res) => {
  // connection poolを使いまわし
  const result = await res.app.locals.db.collection('user').find().toArray();
  res.send(result.map(row => row.name).join(','));
})
module.exports = router

确认启动

image.png

Connectionをクローズしていないけど問題ないか確認

image.png
信息
当node进程终止时,即使没有调用close()函数,似乎也会自动释放
※我认为这没问题,因为官方也没有调用close()。

GitHub (a platform for hosting and managing software projects) -> GitHub (一个用于托管和管理软件项目的平台)

广告
将在 10 秒后关闭
bannerAds