【问题标题】:How to pass additional argument to controller method如何将附加参数传递给控制器​​方法
【发布时间】:2022-02-16 15:55:26
【问题描述】:

我正在尝试将附加参数传递给控制器​​方法(模型名称),但不知道如何正确执行。 路由器js:

router.post('/strategies', CommonController.create('Strategy')); 

控制器:

const CommonServices = require('../services/CommonServices');

class CommonController {  

    create(model){
        console.log(model)
        return async function (req, res){
            try{
                let banner = await CommonServices.create(req.body);
                res.status(201).json({banner});
            }catch(e){
                let errors = CommonServices.handleErrors(e);
                res.status(400).json({errors});
            }
        }
    }

}

module.exports = new CommonController();

【问题讨论】:

    标签: node.js express controller


    【解决方案1】:
    class CommonController {
      constructor(args) {
      }
      ..
      ..
    }
    
    module.exports = (args) => {
      return new CommonController(args);
    }
    

    【讨论】:

    • 感谢您的回复,您能告诉我如何在 router.js 中使用它,因为现在我有错误,模型未定义
    • 构造函数(模型){ this.model = model; } async index(req, res){ console.log(this.model) // 未定义 try{ let strategy = await StrategyServices.index(req); res.status(200).json(策略); }catch(e){ res.status(400).json(e); } }
    • const commonController = require("./CommonControler) dep = { repo1 : Repo1() , ... } app.use("/common", commonController(deps))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2014-07-21
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多