当路由位于单独的模块中时,如何使用 Node+Mongo 进行连接池? [复制]

2024-02-18

Mongo 文档展示了当 MongoClient 和服务器定义在同一模块中时如何设置连接池:

var express = require('express');
var mongodb = require('mongodb');
var app = express();

var MongoClient = require('mongodb').MongoClient;
var db;

// Initialize connection once
MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, database) {
  if(err) throw err;

  db = database;

  // Start the application after the database connection is ready
  app.listen(3000);
  console.log("Listening on port 3000");
});

// Reuse database object in request handlers
app.get("/", function(req, res) {
  db.collection("replicaset_mongo_client_collection").find({}, function(err, docs) {
    docs.each(function(err, doc) {
      if(doc) {
        console.log(doc);
      }
      else {
        res.end();
      }
    });
  });
});

当你有,比如说,一个app.js设置服务器和api.js定义了路线?


一种简单的解决方案是在 app.js 中编写一些简单的中间件,以通过请求变量将其传递到路由。

app.use(function(req, res, next) {
    req.db = db;
    next();
});

当然,您的所有路线都可以访问req and res,这样他们就可以通过req.db.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当路由位于单独的模块中时,如何使用 Node+Mongo 进行连接池? [复制] 的相关文章

随机推荐