您可以使用基于标准JS闭包的模式。主要输出
logs.js不是控制器功能本身,而是工厂功能,它将接受所有需要的依赖关系并创建控制器:
exports.create = function(socket) { return function(req, res) { // write body of api request to mongodb socket.emit(); }}然后,当您要使用它时:
app.route('/logs').post(logs.create(socket));由于您在单独的程序包中设置了路由,因此必须在中使用相同的模式
routes.js-
routes应该接收套接字以用作参数。
如果您想稍后使用DI处理这些事情,或者使用模拟“套接字”测试您的控制器,则此模式很好用。



