Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    @xudong/koa-containerpublic

    这是一个 Koa 框架的依赖容器,将 koa middleware 中的context替换为一个依赖容器。

    安装

    npm install @xudong/koa-container --save
    

    使用方法

    const koa = require('koa');
    const container = require('koa-container');
    
    const app = new koa();
    container(app);
    
    ...
    

    容器API

    注册服务

    通过set(name, service)方法设置服务

    ctx.set('date', function () {
        return new Date();
    });
    

    也可以直接设置属性名来注册服务

    ctx.date = function () {
        return new Date();
    };
    

    如果服务就是一个对象可以直接赋值

    ctx.date = new Date();
    

    获取服务(共享实例)

    通过get(name)方法获取服务实例

    var date = ctx.get('date');
    console.log(date);
    

    也可以直接设置属性名来获取服务

    var date = ctx.date;
    console.log(date);
    

    生成一个服务实例(非共享实例)

    var date1 = ctx.get('date');
    var date2 = ctx.make('date');
    var date3 = ctx.make('date');
    
    console.log(date1 === date2);   // false
    console.log(date2 === date3);   // false
    

    服务别名

    var people = {
        this.name = 'xudong',
        getName: function () {
            return this.name;
        }
    };
    
    ctx.set('people', people);
    ctx.alias('human', 'people');
    
    console.log(ctx.human.getName());   // xudong;
    

    服务别名支持使用.来别名已注册的服务的属性与方法

    var people = {
        this.name = 'xudong',
        getName: function () {
            return this.name;
        }
    };
    
    ctx.set('people', people);
    ctx.alias('getName', 'people.getName');
    
    console.log(ctx.getName());   // xudong;
    

    install

    npm i @xudong/koa-container

    Downloadsweekly downloads

    0

    version

    0.0.3

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar