ExpressJS同步HTTP请求处理

时间:2018-08-16 23:04:09

标签: node.js express nginx

我有一个Node ExpressJS应用程序,我想以同步方式处理传入的HTTP请求,因为每个http请求都调用Gmail API,而该API反过来又限制了一个帐户的15个并发连接。

router.get('/', function(req, res) {
  callGmailAPI();
});

我的ExpressJS应用程序通过Nginx Web服务器反向代理。

有什么想法吗?预先感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用以下解决方案:

router.get('/', async (req, res) => {
  await callGmailAPI();
  res.send('Completed normally.');
});

答案 1 :(得分:0)

如果您想同步进行一系列操作,我可以建议async.series()吗? https://caolan.github.io/async/docs.html#series

const async = require('async')
router.get('/', function (req, res, next) {
    async.series([
        function (callback) {
            // Make Sure you call the callback here after you do your work
            callGmailAPI()
        }
    ], function (err) {
        if (err) {
            return next(err)
        }
        else {
            res.status(200).send('All Done')
        }
    }
})