javascript - 这个异步函数从哪里获取请求属性?
问题描述
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.batchIds
和req.body.user
. 我是一名初学者 Javascript 程序员,我不知道代码中的其他地方可以发送带有对象属性的请求参数。appRoutes 箭头函数的实际调用是在 app.js 中完成的:
routes.appRoutes(app);
解决方案
这个道具是由 express 定义的。它创建请求和响应对象,然后准备一个中间件队列(包括 url 处理程序)并逐个调用它们,并将这些对象作为参数传递。这非常简单直接。:)