首页 > 解决方案 > 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 将如何表现?我的连接将被创建多少次?

标签: javascriptnode.js

解决方案


我的连接将被创建多少次?

会有一个连接,因为“db.js”只运行一次。您导出的内容会被存储 ( module.exports),并且每个require("./db"). 验证:

 require("./db") === require("./db") // true

推荐阅读