【问题标题】:Add koa plugin to eggjs framework将 koa 插件添加到 eggjs 框架
【发布时间】:2019-01-15 22:47:04
【问题描述】:

我想将koa-validate 添加到eggjs

来自 koa-validate readme 的代码:

var koa = require('koa');
var app = koa();
var router = require('koa-router')();
require('koa-validate')(app);

app.use(require('koa-body')({multipart:true , formidable:{keepExtensions:true}}));
app.use(router.routes()).use(router.allowedMethods());

所以我尝试将其添加为eggjs docs 中所述的中间件:

// app/middleware/validate.js

const validate = require('koa-validate');

module.exports = (options, app) => {
    validate(app);
    return function session(ctx, next) {
        return next();
    }
}

但我真正想要的是在启动时加载插件并让应用对象添加验证插件。你知道我应该把它放在哪里吗?

谢谢!

【问题讨论】:

    标签: javascript node.js koa


    【解决方案1】:

    好的,我自己解决了:

    为生命周期钩子添加 /app.js 并添加以下代码:

    const validate = require('koa-validate');
    class AppBootHook {
        constructor(app) {
            this.app = app;
            validate(app);
        }
    }
    module.exports = AppBootHook;
    

    该函数不是记录在案的 this.checkQuery(),而是作为 this.ctx.checkQuery.

    也许这对其他人有帮助。

    【讨论】:

      【解决方案2】:

      也许不是答案,但对于 egg js 验证,那里已经有一个官方插件:https://github.com/eggjs/egg-validate

      对于真正的答案:您可以参考示例 repo:https://github.com/Jeff-Tian/egg-useragent。这是一个将 koa-useragent 添加到 eggjs 框架的真实示例。核心代码是:

      import {Application} from "egg"
      
      import koaUserAgent from 'koa-useragent'
      
      export default (app: Application) => {
          app.use(koaUserAgent)
      };
      

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 2018-06-26
        • 2020-12-23
        • 2020-02-22
        • 2018-07-28
        • 2011-07-31
        • 2017-10-13
        • 1970-01-01
        • 2015-01-31
        相关资源
        最近更新 更多