我在我的 android 应用程序中使用 NodeJS 和 MongoDb 作为后端服务。我想知道如何池化连接,以便最大限度地减少服务器上的负载并进行快速操作以及如何关闭连接执行操作后到数据库。
这是我到目前为止所做的:
const express = require('express');
const bodyParser = require('body-parser');
const env = require('dotenv').config();
const MongoClient = require('mongodb').MongoClient;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.post('/add', (req,res) => {
var data = {
User_id: req.body.userId,
Email:req.body.email,
Name: req.body.name,
Book_name: req.body.bookName,
};
MongoClient.connect(dburl, {useNewUrlParser:true} ,(err,client) => {
if(err){
console.log("Error".red, +err);
}
else{
var collect = client.db('Mydb').collection('Books');
collect.insertOne(data, (err,resp) =>{
if(err){
console.log("Error", +err);
}
else{
console.log("Successfully inserted");
}
client.close();
});
}
});
});
app.listen(port,() => {
console.log("App is running on:" +port);
});
有人请让我知道上面的代码中还需要添加什么才能达到预期的结果。任何帮助将不胜感激。
谢谢
MongoClient
默认设置一个大小为 5 的连接池。您可以初始化连接并重用它。
let connection;
MongoClient.connect(dburl, {useNewUrlParser:true} ,(err,client) => {
if(err){
console.log("Error".red, +err);
}
connection = client;
// maybe move your app.listen here to make sure server is started after connection is acquired or something equivalent
})
// elsewhere after connection is established:
connection.db('Mydb').collection('Books');
要增加/减少池大小,您可以传递带有所需数字的 poolSize
选项。
我是一名优秀的程序员,十分优秀!