javascript - Node.js 需要多个模块内的连接
问题描述
我有一个关于 Node.js 的 require 函数的问题,假设我们有一个管理连接的模块,以及许多包含路由的小模块。
连接文件示例:db.js
const mysql = require('mysql');
const connection = mysql.createConnection({
host : '127.0.0.1',
user : 'root',
password : '',
database : 'chat'
});
connection.connect(function(err) {
if (err) throw err;
});
module.exports = connection;
以及管理路线的各种文件之一:
const app = express();
const router = express.Router();
const db = require('./db');
router.get('/save',function(req,res){
// some code for db
});
module.exports = router;
想象一下现在有 20 条具有相同需求的路线。node.js 将如何表现?我的连接将被创建多少次?
解决方案
我的连接将被创建多少次?
会有一个连接,因为“db.js”只运行一次。您导出的内容会被存储 ( module.exports
),并且每个require("./db")
. 验证:
require("./db") === require("./db") // true
推荐阅读
- pandas - pd.DataFrame 削减小数的尾数
- ipaf - 在 GitLab 中执行 PAF 测试脚本
- linux - 如何在 Linux 上使用系统范围的信号量?
- c# - 将应用程序表单程序转换为插件
- powershell - 如何将 ArrayList 传递给在远程机器上运行的 Invoke-Command
- laravel - 可以将回复的电子邮件表单电子邮件应用程序(例如:gmail)保存到 Web 应用程序数据库吗?
- sql - 如何让这个 sql 代码在谷歌大查询中工作?
- python - 如何在列表中打印出正确的答案
- sql - 将一个表中的名称与另一表中的名称匹配
- glassfish - Glassfish 6 保存时自动部署