Добавить плагин коа в рамки eggjs - PullRequest
0 голосов
/ 16 января 2019

Я хотел бы добавить 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 документах :

// app/middleware/validate.js

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

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

Но то, что я на самом деле ищу, - это загрузка плагина 'при загрузке' и наличие объекта app для добавления плагина validate. Ты хоть представляешь, где мне это разместить?

спасибо!

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Может быть, не ответ, но для проверки яйца JS, там уже есть официальный плагин: https://github.com/eggjs/egg-validate

Для реального ответа: вы можете обратиться к примеру репо: https://github.com/Jeff-Tian/egg-useragent. Этореальный пример, который добавляет коа-усерагент в рамки eggjs.Основной код:

import {Application} from "egg"

import koaUserAgent from 'koa-useragent'

export default (app: Application) => {
    app.use(koaUserAgent)
};
0 голосов
/ 16 января 2019

Хорошо, я решил сам:

Добавьте / app.js для ловушек жизненного цикла и добавьте следующий код:

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

Вместо документированного this.checkQuery () функция доступна как эта. ctx .checkQuery.

Может быть, это поможет кому-то еще.

...