reduce synchronous disk IO operations

Because the Node.js has single thread, each synchronous IO operation stops whole Node.js web server until the operation has been completed. Therefore it is not recommended to use synchronous operations for the concurrency.

I changed most of synchronous disk IO operations to asynchronous ones.