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

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

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.<anonymous> (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.<anonymous> (D:\ReactBlog\react_blog\service\node_modules\egg-cluster\lib\master.js:353:22)
    at EventEmitter.emit (events.js:323:22)
    at ChildProcess.<anonymous> (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)

   

}

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值