搜索
系统检测到您的用户名不符合规范:

WEMALL开源版微商城代码片段--koa路由自动加载模块

浏览:1202 发布日期:2016年07月16日 分类:系统代码
WEMALL开源版微商城部分代码,仅供学习
[代码]README.md
?
koa自动加载路由

Installation

$ npm install koa-autoload-router
Use with koa

var app = require('koa')();
var koaAutoloadRouter = require('koa-autoload-router');
app.use(koaAutoloadRouter(app, {
root: './app/controller',
suffix: '.js',
prefix: '/v1'
}));
3. [代码]index.js
?
var path = require('path');
var fs = require('fs');
var router = require('koa-router')();

function walk(dir) {
dir = path.resolve(__dirname, dir);
var files = fs.readdirSync(dir);
var list = [];
for (var file of files) {
if (fs.statSync(dir + '/' + file).isDirectory()) {
list = list.concat(walk(dir + '/' + file));
} else {
list.push(dir + '/' + file);
}
}
return list;
}

module.exports = function (app, options) {
if (!options || typeof options.root === 'string') {
if (!path.isAbsolute(options.root)) {
options.root = path.join(process.cwd(), options.root);
}
} else {
throw Error('root must be specified');
}
options.suffix = options.suffix || '.js';
options.action = options.action || 'index';
options.prefix = options.prefix || '';

var paths = walk(options.root);
paths.forEach(function (value, index) {
var _path = path.relative(options.root, value);
_path = _path.slice(0, _path.length - options.suffix.length);

router.use(options.prefix + '/' + _path, require(value).routes());
});

app.use(router.routes());

return function* koaResource(next) {
yield* next;
};
};
4. [代码]package.json
?
{
"name": "koa-autoload-router",
"version": "1.0.1",
"description": "koa autoload router",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/einsqing/koa-autoload-router.git"
},
"keywords": [
"koa",
"koa-router",
"koa-autoload-router",
"router"
],
"author": "www.wemallshop.com",
"license": "ISC",
"bugs": {
"url": "https://github.com/einsqing/koa-autoload-router/issues"
},
"homepage": "https://github.com/einsqing/koa-autoload-router#readme",
"dependencies": {
"koa-router": "^5.4.0"
}
}

作者官网: http://www.wemallshop.com
收藏
WeMallshop003
积分:164 等级:LV1
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /