我开始使用 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
});
});
});
考虑到数据库查询时间比预期长,其他用户是否能够同时请求相同的路由?或者 Express 会阻止它直到它对第一个请求做出响应?
**then()
里面的超时函数 block 只是为了说明我的意思。
最佳答案
其他用户将能够同时请求相同的路线。
Node/Express 自动处理并发请求。 它们在事件驱动模型中运行,这意味着没有任何阻塞并且所有内容都同时运行。 Javascript 是单线程的,因此每个程序都在单个核心上运行,但每行代码都会执行,而无需等待任何返回。
关于javascript - 处理多个并发请求 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49848120/