做网站搜索结果的代码,北京网站优化服务,中国建设管理信息网站,媒体公关公司为什么80%的码农都做不了架构师#xff1f; ##实现 在express#xff0c;模块的lib/router/index.js 的 proto.route 方法定义附件添加代码#xff0c;实现自动注册路由方法#xff1a; var fs require(fs);
var Path require(path ##实现 在express模块的lib/router/index.js 的 proto.route 方法定义附件添加代码实现自动注册路由方法
var fs require(fs);
var Path require(path);/*** 添加自动注册路由方法* param {string} path 注册路由的当前目录* return*/proto.regist function(dir, options) {options options || {};options.ignore options.ignore || [];options.ignore.push(index.js);var that this;if (options.file) {options.files options.files || [];options.files.push(options.file);}if (!options.files) {fs.readdirSync(dir).filter(function(file) {return ((options.ignore.indexOf(file) -1));}).forEach(function(file) {var fileName file.split(.)[0];that.use((options.param ? (/: options.param) : ) / fileName, require(Path.resolve(dir, file)));});} else {options.files.forEach(function(file) {var fileName file.split(.)[0];that.use((options.param ? (/: options.param) : ) / fileName, require(Path.resolve(dir, file)));});}
}; 2017-02-28 10:41:56 增加 路由 params 参数 源码中在路由中定义了 mergeParams 继承父路由的 params 参数但是在源码中初始化时候并未使用 mergeParams方法估计是源码的bug。进行如下修改 --57 router.mergeParams opts.mergeParams ;
57 router.mergeParams opts.mergeParams || mergeParams;##使用 首先在app.js中加载routers的路由主入口 var routes require(./routes/index);
//在其他中间件加载完成后加载主路由
app.use(/, routes);在路由的各目录中的index.js中调用router的regist方法 var router require(express).Router();/* GET home page. */
router.get(/, function(req, res, next) {res.render(index, {title: SatanRabbit});
});router.regist(__dirname,{param:website});module.exports router;在所有的子路由中将会将当前目录的文件自动解析为 dir/:website/fileName/,注册fileName.js里exports的方法。 转载于:https://my.oschina.net/xqx/blog/603461