다음과 같은 예제 코드를 보세요.
으아악이렇게 생겼을 거예요
으아악단지 쿼리의 콜백에서 데이터베이스 연결을 닫아야 한다고 생각하는데, 첫 번째 방법처럼 작성했는데 쿼리가 완료되지 않으면 데이터베이스를 닫는 것이 부적절하다고 생각합니다. 이 mysql 모듈의 내부 원리는 다음과 같습니다. 별로 명확하지 않습니다.
모두가 혼란을 없애기를 바랍니다.
高洛峰2017-05-16 13:39:28
문서:
연결 종료는 mysql 서버에 종료 패킷을 보내기 전에 나머지 모든 쿼리가 실행되도록 하는 end()를 사용하여 수행됩니다.
따라서 end()
를 호출하면 연결이 즉시 닫히지 않고 나머지 쿼리가 실행될 때까지 닫히지 않습니다. destroy()
는 연결을 직접 닫습니다. end()
不会马上关闭连接,要等剩余的查询执行完才关闭,该触发的回调还是触发。destroy()
才是直接关闭连接。
具体实现就是把全部操作都放到队列里执行,end()
end()
는 Quit 작업을 대기열에 넣기만 하며 Quit 작업이 실행될 때까지 실제로 닫히지 않습니다. 🎜