ExpressJS的一个问题

路由

router.post('/login', require('../app/controller/admin/login').login);

控制器

let BaseController = require('../BaseController');

class Login extends BaseController {
    // 登陆
    login() {
        console.log(this.req); // undefiend
    }
}

// here here here here here here
module.exports = new Login(req, res, next);

基类

class BaseController {

    constructor(req, res, next) {

        console.log('-------------', req);

        this.req  = req;
        this.res  = res;
        this.next = next;
        this.data = req.body || req.query; // 获取所有数据
    }
}
module.exports = BaseController();

请问下大家 路由的req 等参数怎样传入控制器里,在导入模块的时候 new Login(req, res, next)???

谢谢大家

阅读 1.5k
2 个回答

路由

router.post('/login', (req, res, next) => {
    require('../app/controller/admin/login')(req, res, next).login
});

控制器输出函数

let BaseController = require('../BaseController');
class Login extends BaseController {
    // 登陆
    login() {
        console.log(this.req); // undefiend
    }
}
// here here here here here here
module.exports = (req, res, next) => {
    return new Login(req, res, next)
};

基类输出不要括号

class BaseController {
    constructor(req, res, next) {
        console.log('-------------', req);
        this.req  = req;
        this.res  = res;
        this.next = next;
        this.data = req.body || req.query; // 获取所有数据
    }
}
module.exports = BaseController;
  1. 控制器里面的代码有语法错误
  2. 基类里面class关键字使用错误
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题