背景
我正在 node.js 之上使用 express.js 制作一个简单的 Web 服务器。当我为我的服务器制作路由处理程序时,我不可避免地不得不考虑一些常见的功能。因此,我想制作一个具有所有常见处理程序功能(如 DB 连接)的 baseHandler,当我编写其他路由处理程序时,我想“扩展”baseHandler 以方便地获得这些常用处理程序功能。
我正在尝试什么
实现它的方法是什么,正确的方法是什么?我正在尝试一个非常直接的解决方案,我将 baseHandler 编写为一个普通的处理程序模块,具有一个本地 mysql 实例并导出操作数据库的函数。下面的代码:
// Mysql
var _mysql = require('mysql');
// Mysql connection
exports.getDbHandle = function() {
var mysql = _mysql.createConnection({
host: xxx
port: xxx
user: xxx
password: xxx
database: xxx
});
return mysql;
};
然后在我的路由处理程序中,我将只需要这个模块并使用它具有的任何功能。这似乎解决了问题,但我感觉这不是正确的方法。因为我将在我的路由处理程序中有一个 baseHandler 模块的实例,它感觉就像一个实用模块,而不是路由处理程序本身的一部分。
问题
那么在nodejs中扩展模块的正确方法是什么?