我的Express REST-API中有一条路由可以执行一些数据库操作。我想阻止对REST-API的所有其他调用,直到该路由中的操作完成为止。
因此,当访问此路由时,在update-db-state完成之前,无法访问其他路由。
router.put('/update-db-state', (req, res) => {
... does a buch of database related stuff.
});
有没有办法做到这一点?
答案 0 :(得分:0)
这听起来像是一个体系结构问题,但我建议您查看您要实现的目标,但是您可以执行以下操作:
let lock = false;
router.put('/update-db-state', (req, res) => {
if (lock) {
// send a res.end and return or do whatever you need like use a timeout etc etc
}
// when starting you process
lock = true;
... does a buch of database related stuff.
// when complete
lock = false;
});
再次,我建议您像以前那样回顾一下执行此操作的决定,但这是一个简单的示例来演示。