检查express.js中回调的返回

时间:2018-11-02 01:38:59

标签: express

我正在尝试为post方法调用服务:

router.post('/execute', myservice.execute);

在myservice.execute内部:

execute(req, res) {
    ...
    res.send(someinfo);
}

但这是一项服务,我不希望它打扰需求和资源。我想做以下事情:

router.post('/execute', myservice.execute, (req, res) => {
    // if myservice.execute returns someinfo, i will call res.send(someinfo); otherwise will send new Error()
});

是否可以检查回调的返回?

1 个答案:

答案 0 :(得分:0)

您可以使myservice.execute成为返回someinfo而不是致电res.send(someinfo)的公司。然后,在路由文件中:

router.post('/execute', (req, res) => {
    var someinfo = myservice.execute(req);
    // check `someinfo`, i will call res.send(someinfo); otherwise will send new Error()
});

或者您可以使用middleware模式:

execute(req, res, next) {
    ...
    req.someinfo = someinfo;
    next();
}

在路由器端:

router.post('/execute', myservice.execute, (req, res) => {
    var someinfo = req.someinfo;
    // check `someinfo`, i will call res.send(someinfo); otherwise will send new Error()
});