Javascript Express.js和Node.js,多个客户端

Javascript Express.js和Node.js,多个客户端,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我在谷歌上没有找到一个好的答案,所以我在这里尝试 我的应用程序包括:Express.js、node.js和一个MySQL数据库。但是,此应用程序需要为多个客户端提供服务 在我的代码中,我需要使用回调,以便程序在继续之前等待完成db查询。这会影响其他同时访问db的用户吗?要明确回答这个问题,我认为需要对Node.js异步事件循环有更深入的了解 JavaScript是单线程的,使用此异步事件循环允许Node.js在此单线程上执行非阻塞I/O操作 它实现这一点的方法是在需要时(例如,当有大量请求或I/

我在谷歌上没有找到一个好的答案,所以我在这里尝试

我的应用程序包括:Express.js、node.js和一个MySQL数据库。但是,此应用程序需要为多个客户端提供服务


在我的代码中,我需要使用回调,以便程序在继续之前等待完成db查询。这会影响其他同时访问db的用户吗?

要明确回答这个问题,我认为需要对Node.js异步事件循环有更深入的了解

JavaScript是单线程的,使用此异步事件循环允许Node.js在此单线程上执行非阻塞I/O操作

它实现这一点的方法是在需要时(例如,当有大量请求或I/O操作时)将操作卸载到内核,然后在稍后的事件循环中的“轮询”阶段将结果备份

为了进一步澄清,我在Node.js文档中提供了图表:

   ┌───────────────────────────┐
┌─>│           timers          │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     pending callbacks     │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       idle, prepare       │
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   incoming:   │
│  │           poll            │<─────┤  connections, │
│  └─────────────┬─────────────┘      │   data, etc.  │
│  ┌─────────────┴─────────────┐      └───────────────┘
│  │           check           │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
└──┤      close callbacks      │
   └───────────────────────────┘
┌───────────────────────────┐
┌─>│           计时器│
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     挂起的回调│
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       空闲,准备│
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   进来的:│

│ │ 投票│ 为了明确回答这个问题,我认为需要对Node.js异步事件循环有更深入的理解

JavaScript是单线程的,使用此异步事件循环允许Node.js在此单线程上执行非阻塞I/O操作

它实现这一点的方法是在需要时(例如,当有大量请求或I/O操作时)将操作卸载到内核,然后在稍后的事件循环中的“轮询”阶段将结果备份

为了进一步澄清,我在Node.js文档中提供了图表:

   ┌───────────────────────────┐
┌─>│           timers          │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     pending callbacks     │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       idle, prepare       │
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   incoming:   │
│  │           poll            │<─────┤  connections, │
│  └─────────────┬─────────────┘      │   data, etc.  │
│  ┌─────────────┴─────────────┐      └───────────────┘
│  │           check           │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
└──┤      close callbacks      │
   └───────────────────────────┘
┌───────────────────────────┐
┌─>│           计时器│
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     挂起的回调│
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       空闲,准备│
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   进来的:│
│  │           投票│