为什么当我将Configuration as Code
调用分离到另一个文件时,该程序会在每个请求时创建新的连接?它使我的mongo地图集连接使用量最大化
type tmpStruct struct {
}
func (t *tmpStruct) Write(p []byte) (n int, err error) {
fmt.Fprintf(os.Stdout, "%s", string(p))
return len(p), nil
}
func demoLoadingBarCount(maximumInt int) {
buf := tmpStruct{}
if nBuf, ok := interface{}(&buf).(io.Writer); ok {
bar := progressbar.NewOptions(
maximumInt,
progressbar.OptionSetTheme(progressbar.Theme{Saucer: "█", SaucerPadding: "-", BarStart: ">", BarEnd: "<"}),
progressbar.OptionSetWidth(100),
progressbar.OptionSetWriter(nBuf),
)
for i := 0; i < maximumInt; i++ {
bar.Add(1)
time.Sleep(10 * time.Millisecond)
}
}
}
上面会创建大量的连接,当我在主mongoose.connect
中调用//I put the connect in a middleware
//middleware.js
const mongoose = require('mongoose')
function connect(req, res, next) {
mongoose.connect(db_url, {}, function (error) { //handle next })
}
module.exports = connect
//and called it in the app
app.use(mongoMiddleware)
时,情况就不同了
connect
使用上面的代码,连接使用情况为“稳定”,它不会填写所有可用的连接。
答案 0 :(得分:1)
代替使用app.use()
(不需要将连接用作中间件,而是建立连接功能并将其导出)
然后只需要在app.js中使用猫鼬连接文件
const mongooseConnection=require("path to the connect function")
我们将在您运行节点应用程序时执行连接代码。