У меня вопрос о функции require в Node.js. Представьте, что у нас есть модуль, который управляет подключением, и множество небольших модулей, содержащих маршруты.
Пример файла подключения: 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? Сколько раз будет создаваться мое соединение?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


How many times will my connection be created?
Будет соединение один, потому что "db.js" запускается только один раз. Вещи, которые вы экспортируете, сохраняются (module.exports) и возвращаются каждым require("./db"). Проверять:
require("./db") === require("./db") // true
Хороший вопрос. См .: stackoverflow.com/questions/30356148/…