我正在用nodejs编写服务器端应用程序。我是这个平台的新手所以请耐心等待。 首先是我的申请结构:
除此之外,还有一个与{app}目录并行的index.js
。
现在,如果我想访问foo / bar目录中的controller.js,请访问logger.js
或db.js
,然后我必须写require('../../logger.js')
。我担心的是,如果这个目录结构继续增加,那么require
调用将充满'../../../'
个丑陋的位。为了纠正这个问题,我想从每个文件中导出一个函数,它将获取所需的所有对象,而不是编写单独的需求。例如我的/foo/bar/routes.js
function routes(router,logger,controller){
//This is express.router()
router.get('/a/:b', function(req, res, next) {
var b = req.params.b;
controller.getAByB(b,function(error,result){
if(!error){
logger.debug('it is working');
//other processing
}
});
});
}
module.exports.routes = routes;
以类似的方式我会制作其他文件,例如:/foo/bar/controller.js
module.exports = function(logger,db,config){
return {
getAByB : function(b,cb){
logger.log(b);
cb(undefined,'someting');
},
getName : function(cb){
db.fetch(function(res){
cb(res)
});
}
}
}
这有意义吗?如果您发现更多可能有用的东西请建议。这种方法也会使单元测试的写入更难(只是因为你知道我以前从未在js中编写单元测试)