首页 > 解决方案 > 这个异步函数从哪里获取请求属性?

问题描述

async function process(req, res) {
    try {
        const fileId = req.body.fileId;
        const batchIds = req.body.batchIds;
        const user = req.body.user;

        if (!fileId || !batchIds || !user) {
            return res.status(400).send({
                ok: false,
                message: `Batch Process Failed`
            });
        }

        const results = await processHelper.process(fileId, batchIds, user.mail);

        res.status(200).send({
            ok: true,
            results: results
        });
      } catch (error) {
          return res.status(400).send({
                ok: false,
                message: error.message
          });
      }
}

在这个 async/await 函数中,它接收一个异步请求来处理来自 Express 路由的一些数据,如下所示:

const appRoutes = (app) => {
    app.post('/upload', uploadConfig.any(), document.upload);
    app.post('/process', document.process);
    app.get('/getFiles', document.getFiles);
    app.get('/getBatches/:fileId', document.getBatches);
};

我感到困惑的是它访问的请求属性,如req.body.fileId,req.body.batchIdsreq.body.user. 我是一名初学者 Javascript 程序员,我不知道代码中的其他地方可以发送带有对象属性的请求参数。appRoutes 箭头函数的实际调用是在 app.js 中完成的:

routes.appRoutes(app);

标签: javascriptpromiseasync-await

解决方案


这个道具是由 express 定义的。它创建请求和响应对象,然后准备一个中间件队列(包括 url 处理程序)并逐个调用它们,并将这些对象作为参数传递。这非常简单直接。:)


推荐阅读