我开始使用Node Js和Express创建webapi。
然后出现了以下问题:
如果我有一个能处理/
请求的函数,如:
router.get('/', (req, res, next) => {
pool.query("select * from users").then((data) => {
setTimeout(() => {
res.json(data.rows);
}, 5000);
}).catch((err) => {
res.json({
error: err
});
});
});
考虑到数据库查询花费的时间比预期的要长,其他用户是否可以同时请求相同的路由?或者表示阻止它直到它对第一个请求有响应?
** then()
块内的超时功能只是为了说明我的意思。
答案 0 :(得分:1)
其他用户可以同时请求相同的路线。
Node / Express自动处理并发请求。 它们在事件驱动的模型中运行,这意味着什么都不会阻塞,并且所有内Javascript是单线程的,因此每个程序在单个核心上运行,但每行代码都在执行而无需等待任何返回。