I use express v4.17.1 and would like to make my routes run in parallel.
So I have found some examples in the internet.
Example 1:
function runInParallel() {
async.parallel([
getUserProfile,
getRecentActivity,
getSubscriptions,
getNotifications
], function(err, results) {
//This callback runs when all the functions complete
});
}Example 2:
app.use(getUser);
app.use(getSiteList);
app.use(getCurrentSite);
app.use(getSubscription);can be changed by doing:
function parallel(middlewares) {
return function(req, res, next) {
async.each(middlewares, function(mw, cb) {
mw(req, res, cb);
}, next);
};
}
app.use(parallel([
getUser,
getSiteList,
getCurrentSite,
getSubscription
]));But the problem is, my routes have accessFilter, parser & so on. They look like this:
const jsonParser = bodyParser.json({
limit: "1mb",
});
const accessFilter = accessFilterMiddleware(Registry.list());
const localDevFilter = localDevFilterMiddleware(Registry.list());
const apiRoutes: Router = Router();
apiRoutes.get("/", listProducts);
apiRoutes.get("/healthz", cProductHealth);
apiRoutes.get("/:id", accessFilter, localDevFilter, fetchProductData);
apiRoutes.post(
"/:id",
accessFilter,
localDevFilter,
jsonParser,
fetchProductData,
);
apiRoutes.get(
"/:id/fields/:fieldId/options",
accessFilter,
localDevFilter,
fetchProductOptions,
);
apiRoutes.post(
"/:id/loadmoreoptions",
accessFilter,
localDevFilter,
jsonParser,
loadMoreOptions,
);
apiRoutes.post("/:id/ploy", accessFilter, jsonParser, fetchMultipleProductData);
apiRoutes.post(
"/:id/gxx",
accessFilter,
localDevFilter,
jsonParser,
fetchGssData,
);
apiRoutes.get("/:id/healthz", collectProductHealth);Question: How can I use the async.js framework to achieve this for my express POST & GET routes with parameters ?
from async.parallel / async.each for POST request with accessFilter, parser
No comments:
Post a Comment