egg.js中间件做中间守卫的时候遇到app.middleware.adminauth is not a function问题

您所在的位置:网站首页 mockapplication egg.js中间件做中间守卫的时候遇到app.middleware.adminauth is not a function问题

egg.js中间件做中间守卫的时候遇到app.middleware.adminauth is not a function问题

2023-09-25 06:56| 来源: 网络整理| 查看: 265

今天遇到了如下的问题.:

TypeError: app.middleware.adminauth is not a function at module.exports (D:\ReactBlog\react_blog\service\app\router\admin.js:5:38) at module.exports (D:\ReactBlog\react_blog\service\app\router.js:9:30) at AppWorkerLoader.loadFile (D:\ReactBlog\react_blog\service\node_modules\egg-core\lib\loader\egg_loader.js:304:13) at AppWorkerLoader.loadRouter (D:\ReactBlog\react_blog\service\node_modules\egg-core\lib\loader\mixin\router.js:17:10) at AppWorkerLoader.load (D:\ReactBlog\react_blog\service\node_modules\egg\lib\loader\app_worker_loader.js:43:10) at new Application (D:\ReactBlog\react_blog\service\node_modules\egg\lib\application.js:66:19) at Object. (D:\ReactBlog\react_blog\service\node_modules\egg-cluster\lib\app_worker.js:21:13) at Module._compile (internal/modules/cjs/loader.js:1158:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10) at Module.load (internal/modules/cjs/loader.js:1002:32) [2020-04-04 11:32:08.486] [cfork:master:6884] worker:2000 disconnect (exitedAfterDisconnect: false, state: disconnected, isDead: false, worker.disableRefork: true) [2020-04-04 11:32:08.486] [cfork:master:6884] don't fork, because worker:2000 will be kill soon 2020-04-04 11:32:08,487 INFO 6884 [master] app_worker#1:2000 disconnect, suicide: false, state: disconnected, current workers: ["1"] [2020-04-04 11:32:08.494] [cfork:master:6884] worker:2000 exit (code: 1, exitedAfterDisconnect: false, state: dead, isDead: true, isExpected: false, worker.disableRefork: true) 2020-04-04 11:32:08,495 ERROR 6884 nodejs.AppWorkerDiedError: [master] app_worker#1:2000 died (code: 1, signal: null, suicide: false, state: dead), current workers: [] at Master.onAppExit (D:\ReactBlog\react_blog\service\node_modules\egg-cluster\lib\master.js:510:21) at Master.emit (events.js:311:20) at Messenger.sendToMaster (D:\ReactBlog\react_blog\service\node_modules\egg-cluster\lib\utils\messenger.js:137:17) at Messenger.send (D:\ReactBlog\react_blog\service\node_modules\egg-cluster\lib\utils\messenger.js:102:12) at EventEmitter. (D:\ReactBlog\react_blog\service\node_modules\egg-cluster\lib\master.js:353:22) at EventEmitter.emit (events.js:323:22) at ChildProcess. (internal/cluster/master.js:193:13) at Object.onceWrapper (events.js:418:26) at ChildProcess.emit (events.js:311:20) at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) name: "AppWorkerDiedError" pid: 6884 hostname: clx

刚开始一直以为是语法问题.找了半天,官网也看了. 同事也问了,后来还是在官网看到了.这个中间件需要写在app/middleware文件夹下.才行… 结果问题就出现在我把包名写成了mindleware了,结果就一直报上面问题.

module.exports = (options,app) =>{ return async function adminauth(ctx,next){ console.log(ctx.session.openId) if(ctx.session.openId){ await next() }else{ ctx.body={data:'没有登录'} } } }

router.js下

module.exports = app=>{ const {router,controller}=app // 声明并引入中间件。 const adminauth = app.middleware.adminauth() router.get("/admin/index",controller.admin.main.index) router.post("/admin/checkLogin",controller.admin.main.checkLogin) // 添加路由守卫 router.get("/admin/getTypeInfo",adminauth,controller.admin.main.getTypeInfo) }

这样运行是起来是没问题了 主要还是包名问题



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3