egg 自定义插件无法生效
发布于 2 年前 作者 xumjs8623 3477 次浏览 来自 问答

config/plugin.js

'use strict';
const path = require('path');
// had enabled by egg
// exports.static = true;
exports.static = true;
exports.cors = {
  enable: true,
  package: 'egg-cors',
};
// 数据库插件
exports.mysql = {
  enable: true,
  package:'egg-mysql',
};
// 参数验证插件
exports.validate = {
  enable: true,
  package: 'egg-validate',
};
// 时间插件
exports.timeFormate = {
  enable: true,
  path: path.join(__dirname, '../lib/plugin/timeFormate')
}

lib/plugin/timeFormate/app.js

module.exports = app => {
  app.addSingleton('timeFormate', timeFormate);
}
function timeFormate() {
  console.log(111111111)
  return '1111'
}

lib/plugin/timeFormate/package.json

{
  "name": "egg-timeFormate",
  "version": "1.0.0",
  "eggPlugin": {
    "name": "timeFormate"
  }
}

最后调用的时候 就变这样了 image.png

3 回复

addSingleton 不是干这个用的,要返回的是 object,不是 string。 你如果只是想在 app 上挂个方法,放到 app/extend/application

https://eggjs.org/zh-cn/basics/extend.html

@atian25 好的 ,谢谢,我去研究研究, 我只想 自己封装一些方法, 然后每次用的时候不需要去require

@xumjs8623 egg 内置的扩展机制完全可以满足你,还是把文档的前几张仔细看一下吧

回到顶部