{"_id":"async4mysql","_rev":"35-e21fcc0be0dbaf3a3a7eb300620d49b7","name":"async4mysql","dist-tags":{"latest":"1.1.10"},"versions":{"1.0.0":{"name":"async4mysql","version":"1.0.0","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","devDependencies":{"mysql":"^2.16.0"},"_id":"async4mysql@1.0.0","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-jkjIiZEgUVgPuiiLIp+eDhGWy6UaDnwEpfbaHFJy0T3PbtB5G7vo9vN9kXzfvUyMF1jfmQpkxBM3th0lBQBy9A==","shasum":"69537f814e07d33d54420710c8f7f50a40b512e0","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.0.tgz","fileCount":3,"unpackedSize":73716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQARrCRA9TVsSAnZWagAAYdQP/2LMcHue5FxSXvMyx6Tr\nmlXUgOlq0R+AHUe184+zys0kf7BEzb8e5JKVg3efy0neeZZ8s/mHKzgpnHpX\nH2EgRwZvqaQUnHkhdqH3lbYbPG41H3HwdQ+wN/Uus/lTjvRfnoUOataeEIe1\nV63k8lwNzxlczlBEy+dIEJ7DoHzExu3lXibqBTAq4MKP6DXsxrHGN6TWqyth\nFv8b/BsQrzCUikpkWek6BL7llY9pB182DTaYtpxOCpt7VDbe3wxvdOkUBxvq\nEC9pdTzlMWJlDRPgSF4S9fOXeUVhHE5iEzbe0USZtN9HaozZvuJybKU+lLVb\nzOxi72TAp2lVR+glh31gbMw+albWY4a0iQDijnBaOigdlmg940dQp3D9NKQe\n4rbU4gMoQPzosd4wynaz92m+RNdva2QWLd6GbX5hJ8G0jM95aPXzlV3c24C3\nWZdne7/QnqvEvi+rRSS9DGDTbE9VSpLQ5AcX6eFa1L8faZM2RJR2sKms3m09\nsePW9QjaPvwrUQ3p1UB77ThAYcaFkYMgz7OUQibKwW982TjkUeQ1YKymtq5+\nbyIFw7HWqla7VHaA3/cbJi35bVWCSwbxEM6WUMu6wq0VmHLWloqYdXN0RS3x\n1/1YlE+3ZO6aMFit5Cdfhkt6+CJGFTJQWpia4DUwMIOCGEpHMwNtSOHfM447\n1XjD\r\n=7pgA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYLmPtXT3tXUJ7tfk9SIKXJqBj2Ytot6hndKxuNXePegIgZ1zqzQvEAqvdh5Vvnwczc4zs2GKNYKXHmy9w909N9S8="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.0_1547699306479_0.1439183198287064"},"_hasShrinkwrap":false},"1.0.1":{"name":"async4mysql","version":"1.0.1","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.1","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-1wzUrIreUVhUazmrt4V1m0go/40XhRipN5NsJK8YfjVepOABm9T72fT9kYXIEV8MPARHchV0fl+0XzYvbRuy7Q==","shasum":"ecdc07fdb1fd8f4f08920aa79b3d30e698f9340c","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.1.tgz","fileCount":3,"unpackedSize":73504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRtPYCRA9TVsSAnZWagAA/IIP/0ic2uO818Gan8+KBY3a\ncbeTCOrAZFU4Cd5OmdYwV9GZrIlz/GPj7BpQDsY2gk2DxWHWAEYAA1q6AkKh\nSkOBsfToBft6esY3L9zYSy67WuBwUbqnKQgEcTuwdUeG8jmf70xxr7WusBEI\nsRFnBGkbMUK+wFijeqzpefpFZqjbhPUxAsaXSORQobVppKiP3ha+u3bJmSXH\ngR7KrahbiwKVU3rwZhL9lN4sftHiE2Tw2AB0wi0GwnklSFQUv1iFO7cWQyUf\nSLtOaDgUCklBAhpt1lT0ZkZHGgoXMwIAOmSdhE3j6MnQQn/YJGo5jermppol\nVDefXyZlFpPE7l8G7KQ0ZXt52CCAo+QFGWN5yr3MbjxsSNXm+g+T+yF9Jy/W\nucE9aUNdEw3LvCgv9zGY1Hh0PQZI7MOqq6OnVIILw0vUc9pUfDsCof0yxv1e\nVwLjPs/Bue94aJvMN9TCd4Ad0mmphB8tN4LtQpWhb9ZjvlHXascrhQlRbrxF\nICoWewqhz/Pf2afOALaGBDmjNM6e5PDgnn07wd3UFtaTEdQ/7SKXXXQeE2kw\ntndFDoz/C8CP8+zhDsmmFWakIvxJgK1anIeeZDBGF3kxWm9bzuYvDbUPRv6w\nJsaQp7kk21QYIm8i/sQb34BNZzC5YepI+s488j3Avgdbvr7WevFnd/4ctWcf\nxpgU\r\n=KdD7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICI+IWqeaQQjoFuMy97NSUI8bwFaS1bQCeVf50mm+RVvAiAThmTK9N9Q0+M2aG192Q+68hPHMV4f+t68LcsI0rH4vg=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.1_1548145623655_0.11676075231414873"},"_hasShrinkwrap":false},"1.0.2":{"name":"async4mysql","version":"1.0.2","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.2","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-JSrz/TMvDzG9SWf8ka2WcIRzjpe3I+XUF74V1M/iUzGo6yhOIdJ0z7Hh21sfXT247pFcDl4sBvmVqVbQrasRnQ==","shasum":"6c67faef2d690019abd4c416c61b75259643adf5","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.2.tgz","fileCount":3,"unpackedSize":73558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRuIFCRA9TVsSAnZWagAAgMAP/0rnH7RDqh0oB81lzTgn\n0Xcj8N5M2PDe9SaSoHWwGDRgUXaujixDarIxchoC3XB95ytYnf+UjRo7JhYX\njfPEyVmw9WMMgYRI8euJ2jyWF2Xe6aZeJx1WIxnbSeSq1dlEz7k2OVuXYvia\nHQfa8XLHQ8LPOF8cH8vmqLqZFHxn2XxY3oKKylj3gOP4r8jRG5AtpmihCPI7\nfjD5lmV0M/PXnHTCCPV40o5okk9NdVF5E0/Cedzj5jlhXXXyswx7G1MFLPKa\njfQtUr2jkc68IOU5u1q6or27BrSfe/XTccwW3+LA7t2UxTTomrjnsPiu851G\nv6rUF5wbTw5PwXJthLLObYA7hDyXly4Au9mOWJByoLPcaUPUc6IzXuos5QDT\nZa6Gk/dITbNZyOHOB7SlzLgdJSnZXL6fkqUPZeMEmwOhQt49yUua8LLeaUPe\nATHNq5HhzoTZdWDuFphiL6tZEo8sCmn+P55ieXQ0s9g3n9wfLSFdzCnjuF4U\ng5ney6t/yK/PKUuy5+P1bFYcC2U2wUf6NOBId4Yx5XR2XbVB4gOsocb24z0Z\nd13ecWo0EUTdwCwaj2EW86FnANKQmkRsKXwpO6ijvlOS10Z3nuaoAAxW6IZ1\nn4VX8nW0Knc0Zvcj8yzzAnqXDKgI9mmb/Sermku2nOd+m/JKF3r8wgTZklpL\nYMr0\r\n=0W7q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICWH0KBu3/txpJ3TuURCF2+P8FPTKBqs5opsF54IsnGAAiEA558+eWrH8Bg0FkZ4NmlboZOjcAgjTDI0x4vluBUihGQ="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.2_1548149252672_0.667725384933527"},"_hasShrinkwrap":false},"1.0.3":{"name":"async4mysql","version":"1.0.3","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.3","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-ieMXz3GR/8dDqNs/f3YShZIYaf5Zt8EdLQzWcMsYlatAYw5N4HtUH8yrSDBpctQv/RppLEp7aLuoPAFWvmqpBQ==","shasum":"cfea3f6509be8703670ce408c598c6749c61b494","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.3.tgz","fileCount":3,"unpackedSize":73070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcR8LTCRA9TVsSAnZWagAAl+kP/2+lC5y2EZ5XfZ87JJ+L\nwHOM5sHX4dfC8H1oWCHk+aLHjfjj7Hz6SO8j1HXbHxRf/lPCnSQl9iYCAkSy\n0xRtm+ameKTIZQVOdMWLE64/wr8KpmBQAmcTUE1fMjMrdnDo0DzTaB3cm6P1\nf6ufNWABoLaCeRstpLqV3VhpoyTDOkEiuTDczgxy9vCMDUjb1qPXq9LNCAaM\nLE4QoYM54nB/dbSGwi08nssifGH/ydzXjQlQS5fr2o2NPcOhsHdxgs/hIXNM\nvxSTvz2Hveji9XgY2MoHNvOYdfT+QAibFkSEKnVeN83WbWLm24VpdSJLfQAx\nhIRN9FcEnZ8qmN6p9kV5KnPrXm0jBipoIoNRjOjaaNUNpFK3WpieDtK/Olz6\np/F/POrLVCY9ES9fKzQW6eQ3ANX8WTAslO6dg0Lf0fERxAagT90f66pQ4e5M\nsDoX5SOWd6mYzGdPYgefZjPMOuSotHrMeUC5UwwqYvZbEzTqX8W4QactfgNV\nAlViqEGaH5Truq1N3A0e2TQhmJVw532YZ95Fg6OQ81bgar3ecUyYMyPaJZma\nPzzIVBfQ+wt9+UNtQ+NazcyNWrs8Y8bdSeqmivqjGuHr3dfZiLaPXS9ktbNj\ntAkSxVvivN0Bbr3qAzR5X8XqtWbSEchBdPTxhKFvszgOTTPMsVDVLqPuIW3g\nfZtV\r\n=LSdS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR9TEJx5eLDs6Yu0pY/J0x10bYhO84jwAJQu6gMtw0ZQIgKTMpZMYkQYE71NTdL3ITyaKptdyfHul7sO7b+TVGO+U="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.3_1548206802177_0.7797136085075664"},"_hasShrinkwrap":false},"1.0.4":{"name":"async4mysql","version":"1.0.4","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.4","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-9/lDdX5mVNOrfPLm2a0OGZYzOo4vYiKL9VrXJJUubsTU7fDUlVvF/W3S2IKrH6sN/dZX3DEdR3sqvBgE2+Xxlw==","shasum":"d4dc0df13f9059c606a3fc6cd242105a78f47f6d","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.4.tgz","fileCount":3,"unpackedSize":73129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcR8hWCRA9TVsSAnZWagAAo9kP/28ODJruxiQDZ9U/v3SU\n7kmsTlmnt5p+QVkohlOe6qNmzRsj971+kOoaVkVMzzGosGv3e4KBZ2mF+Ygx\nLrOZFPRgiXZtw3kuFJ9uHQIgT1tefHzkGzU1RXfx39Qu99AZ+4FdnaGz39gc\n8PukpMvf/at8Br4bijUu5dsmXHJWblBw2fKiXBsA0RxapgSPJdIs6X2Z6BkF\n/pO7HsntJ7kvVAPZpvtQGZY9f06D6UWRT8cPHe85EWfKcKP0Ahr2VgNpyCUo\nJhWuCkqBiTwQihpAtGlNJ9cFmLyfjZB+n9pIzJZWVQSe3iEFkb8AtF1Y2AEM\nkWE7aORHICLP2NSIyxI+i0AzolTNg0htSNFbgElBKLy8Kep3fxLC1rYPXcWo\nqtR1RZDC8XEBUYrO8ZCPj+MU8nc94xWOmRdVSpYVivyIZ2BiiXODzbqRcN2r\nx8g1oavlXujc+dbSblwzpuKUlpzMok/LKIxU3gyGOHsgH0zVWpGrqd5W3bWz\nk49qot6qQrBt93eZPTmoRNjQoXj3ktVVdruDvs3sK/PsNztEUyhkckvamqmO\naq2mwiUUh7WuSVHsX8bdJUgxTkJRLHwdzD+5E75rBq5Cz2aF/HPLv33eaELF\nWfRWkmDluGlbLkSvqmDqyxIdZaSxYpB57Rv9zuklD2tSb2NXy0lq1KUL6NFu\nNTGf\r\n=VCKK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqwQ22mFonic+3YzktAYRhg7qA8ARj1u2HDik4dtq/9QIgJPMvfOgwYP+A5B3wqLHGh0FCFQFhvwTS9FXTFGXW5U4="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.4_1548208213528_0.8701011410507642"},"_hasShrinkwrap":false},"1.0.5":{"name":"async4mysql","version":"1.0.5","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.5","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-+2jCCc5OaE56O8XA+MyiKyXK7VT92FLix0R5Sol2pR3gC7pbFT3+E/9e2LFfFsCec4P5tybRXndMn0YOE/fl8A==","shasum":"af7a668ddaf262dddcab10709830430809554982","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.5.tgz","fileCount":3,"unpackedSize":73131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcR8mOCRA9TVsSAnZWagAA1lYQAKG69NsZepkHRcOf1Rsz\nqeB0pR6T7lSQORqZM+CfsSXrKGdvq2HT7KThHOWmqgrC1VugPDKhiYZLaDuS\nIN8FKg8jO5wh0PMH6HMqzBIWMr7DysXY19In4EpxFqhgYvmP7+NynMCfhUx/\nOVP5BjbkRpv9EOXEU6QJ/f6GKalYNxgA/fB+F3QLPqQ+nuuFG7Y9LNYM8jTS\nvf6f4nS9uzGmnv7l1ZI7N5eGvjVHSbcPNFQ7Z8VBNyedooyfVtcRUq4C2q1G\nsKAVQt4L8H8h+pMeoxDpM3G/WNLpJVVXPaBohEnUU8vypvgsnjnSJhAnokr2\nE0A5+V+XJdXPJkCQkYmzKeMdGpyrSVmdhSpacfIGFremjrMdVvEMrh4yjO/g\nPDhcDZw9iXGjVYYYCjmnwU/nS/KxH/PK1thJseAxTlSaBRinN8CcxSctREzS\nZyTw9DchJOeBtZ6iU/12MmI9xeviZVwb8CBMfzeBImDwT2RpkHpE+DyqiWMZ\nJ09xQX7lmnKx90os6d63fb1ylIb6X7USdSdJzASp++w32/OzNB48J7g6a9PG\n/XUUH4OnYLCT0KLPP02JzKr8Ktlq8si985m15HU7InA7afyptx6x0W1aQcI2\njQ0ECtk3IAjx4r7kDVE3Imn7rocgMOGrh/odZoeIYHmt+nlp5XY4J16R2bFj\nXdsA\r\n=WMzc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICB13C2HyLKZwhmsiAr9M+t92v7ghwRLt/2qMaUfC2mSAiEA1ixpC6HptgMiWYHsy7erNyfB9BxCxFH9ExUTx9TloAU="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.5_1548208525304_0.49042896541888004"},"_hasShrinkwrap":false},"1.0.6":{"name":"async4mysql","version":"1.0.6","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.6","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-/aD9VACIR/xlhErPOEsacij1XCO7TrhzmNVEq2L+4srdVqdJuGiLW23YXZ3b7LB4rND1ld4s6AJWLPViTPcAhg==","shasum":"a56eddd3538eda421bebe76718f5da17871828f1","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.6.tgz","fileCount":3,"unpackedSize":70136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDX4CRA9TVsSAnZWagAAZ6sP/i8gdk2ueTzMb+OpbfLy\nwGoq1XA6zdmx9iFDq3zYPGH0y9IpGjaiZNoqAoaN+STjCkcqBDH8b9+cWTPE\nNigMSPfn1OCruXfZfU2+zIv/qj3nZds2n5cHOfROgbJxOpZHW7Q/mnc6sIh/\nbE+QuABjFMziloNhxP/OrBs1TD9aqKHzf741AEZYkx/E9uroQVu4M6uU2jtJ\n/H/3w0Dz8ASZFAL5BebAiWb+DlFWaeH/HgoqiiWs9y1v5TUylNhweRPNX/4y\n9+wH2rhOFzftRZcnm0M6S/fkej3ccRo8Evf97LjspfnaEYfCV/PWH6mSGVub\no1mNDTG8fSzsdIUAGenMjczmH8v8Kd0lZaaMDv8D/6fbPCLw+xUp8Yvn5ONy\nbvmAQeh11tOnv2+7Y+hq+vD8B/Tw6rMm93sDD1ttg8kbbgsPPzE/00eGBpXz\nvr7AsIYRUg6OwwMr5AuUzTLKYOJN9IPCydLsH/++5HjEsug0GpoG590Gmq7D\nXteQJzFIn2XLYqPqMVrVVT7wFDugCLEOxXlDakPBAExiyX78CEUM5uHHYjER\nXbjB/Kyw28NY7dR9IXW/r4GtdIuCLbIv014R1+URXXKTAit4bi0JR8WfvVVG\nrKAzUBQdgdfC0UQfcTc9sv/JN74Szp7ZNjkI+p2Ab1YYYVhfN3Lsa13yeJSW\n2Itr\r\n=vsQT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3M4QDa2Z/ksTLAjoGfniiHtn1tYHIAwF9r4FK3mTw3gIgbf8dXHOUWbOD4TlxLWkilpdhce8A4Bb+5cYagvUzSy8="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.6_1548236279682_0.9508588643577103"},"_hasShrinkwrap":false},"1.0.7":{"name":"async4mysql","version":"1.0.7","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.7","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-6ZTIu1AsJl9kGZQOvkw6sDODS2rW2+XuajotLytTFR2jEOOXOL6jNtnPRU1W7Tm5wJbeXoMWw+6dsLnjDsjB7w==","shasum":"67e5a92a37b8a2ff3cc87f7e835f801cd5e0f6c0","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.7.tgz","fileCount":3,"unpackedSize":70135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDe9CRA9TVsSAnZWagAAuLgP/364x36sAn4VXYZ3XEUO\nbAYqofdbIoruNEdGFNyMwsQlba4v+HZMJs/oP+WzvAt2gf5JMvLIEGmG8pCq\nCpk/L2a8gvqVhwu7SG0bjMY8AhJJah8DIhkJ21xTGjquLH51Ek4VCGuHfv6m\nckskkeN+dpXygJmdZwKGUKYXGyouUjVEIi4JZb4guIwLBsVwMZpK3tuQe2F+\nmdSmgHtzHdYsog8r5huF8ltHlyJFHPOzXzn/BwfqspnVYMOFq7O9cx9hJX9i\nKEI5vZX/Hz1yUVtVJfOG5HB1eKsz/1AdyaX1Psi5u5YxxQ67XiNy7ojKCZik\nFeLESSmXIMJS2bGNOKcDah0JpLWIVZZGnli80gblbATsMyfkytwk9Pcr9Tc5\nHPwdG3FWQOlmouTCBcEVN5TzkIDrr7dj4mcs8n7++xVGEZd366LlQjbh71iZ\nyoSkuLcUqPX0htbIo5Wl9qlY1b8vDrLtbVaQt9QgnCK3aGkScdSHnvbNYjV/\nrJLsAvvJ5ji96ZCWQsh9MWnXKirG/x5wjBmTTaqH4nuickx173z2gF2GNP/s\nh8SK7UCqnlC1sOROnxNcqs0nbWKZfondCoiY9+2A5M1SqgxQu6JwAzmYqsO/\ndV04YBLIM5842Uw5fnu4w+EoI/kTxXAOeu742Rpnrs0/xIKGyQW76BdgIkex\nOf0L\r\n=PrXe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSnwwtosjuhHnsOSq8WUcvOwG4O8IW5qvFIfbGMsiVlwIgLV1q8PLszUtORnzdVaeRc6llFt3yUUeLD18xBTyW5uE="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.7_1548236732776_0.6278141336084893"},"_hasShrinkwrap":false},"1.0.8":{"name":"async4mysql","version":"1.0.8","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.8","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-wGhT9hQIgyQKDWqF+hwf+Bz+Ne9ZMr6xkMsR/PZBLH2JrHlOwzym2hNaHaQnhbDL2JvtgvhlFQKaCDwL8/nhTw==","shasum":"c599b8657f49157c28b308c29c33706a447b9c90","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.8.tgz","fileCount":3,"unpackedSize":70130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDhkCRA9TVsSAnZWagAApEIP/2jLRvV3zV+EkaPoCTAn\n7CfbFmpxmKJmmQuBUyqP2jX1+/OwG+s7f/zs9QmVqXyGb1FfwuC3GOeQnGMc\n9BjQj5Ghx0dmvzNJDTs6qFhpQGEi1fDfQNNKpjIgDefj5C0AexkpUgvviEeh\nSHmJuA89sSqehpAwok7Xce67OI04b9zqcFD2/KU/93fr/5QHPWuY3BkSNwl+\nK0zfNiNj5C8XnG+pT+66lWYg0703q6XkAuD/hpdVVqvnoaYE2Hxye/94rSPg\nFKGwaR49avOJpQgoLVZaSXX9RZ26GUOXf0hktSSSCCHxABfgWFlV4UVzUH1a\ny5n9Z2YW0b5tf2SPzOCF8ETxsgpUT90TiLNY6slqw5dXMTv79ZjI5BLr63Br\nqbPIQvYbs9TOSPDzx1Bl6auqlOMordK1nzM8WcQ0EgsWP+ql3GOlginoCxbx\nqlpkdrczc43lJVMXjvNUc78xaNDV7qP202VucaG8Uk/2jPJlwvRuC8ZBHeAc\nfxuPHWPAWKI/EF49srgwO63s0BOF04gTyaKDEdHCiwmK8G8KnKtbgKcL99d6\ntUKvAKFhfYBNwryPfEr9B1RzeVEDcl+Ykg94MvtIQFs88UU6BTiipivLmPCu\nfcSwC6trKKjjANdfffVP6vN2PKiRdA0FT2rHlDh0eQrhyPSObo7ech7u+OHb\ngr6N\r\n=bb8t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHthEhLFIA1rba/WpVH1xtjh9HOnstAueTQJ/KMIlUJAAiBzSlam7zQOSF2ecXRn4dtyXHs/m0BUgQ7Hgfu8hA9wfQ=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.8_1548236899763_0.5677900999253911"},"_hasShrinkwrap":false},"1.0.9":{"name":"async4mysql","version":"1.0.9","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.9","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-ikoqAZw1KPu9sXVdzj6Gjgsq1UU8GjlrcF5JkB3wHibGS4FH9XFYr7nYiD8w86mTvO/k2gsEw4QX8v54HBf0Ng==","shasum":"86b35a2f555b392be7e4c9718cb2e5dfb3408dae","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.9.tgz","fileCount":3,"unpackedSize":70130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDjXCRA9TVsSAnZWagAA+OsP/2CIJy0U187uWcEmTmz7\n+bYRcrPSXSsd5jQIMi9NoIZ3CoVfdtKB4mzwlxV7hsdppeUeXW+aMIxyY9PR\niK5a97id0QAXwruNZ5FsM0AvSAeFNqHKxjcRzfv7QIkmvsrco6gRTE+wulZj\nYFBTtQiPXo0RDkNaNw0SnfrCx+aNMA2PbEBx7exkO9Cxjx+c81qZMyKANRI9\nIiATdwvtQksIcmIp2eMOihJXiw9RhlX0l5t7+BZpitE3AfGL8sjpLESdrqCH\nI66+AzWXTH/qde/xB1GK2BmSzvfkHPSaJr/AWacxryUHHmiORGtRA+aCDPUO\ntuidtrkTlbzFmxEwy2Gc5MHsKC+k58sJWsroRPInhFcTGk3PTL8zE9BuOBce\nZHEhoJwDrOFjDt6R+HSeUhh5LKMqJ/xs+/WQOAvRhmb86ondZhOzC8SsrLHC\nUla2YzWc2bBOwEIQWCNNy7dwbxRI0FLV0Y+5SqiCbRc7pLy+WvADMd+hLthl\nwplSqmMB1ach0HmPWckKUmNGMiDp4S4ttziVsfuGs/XGFKpOskojPqiSvWd1\nEMrG22fEHTd9WYA8twtFKqtySE1zIcYlT6V68OaepBrLEjz3QZIMGvxnSKpt\ntg5qZp/gHqu6X5FdyOl81DM1YhbScoK+IzalfJs+fJQ25UiTg2VSAxG4m6P8\nw++r\r\n=Vu6E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEkYU7Tyd5nUYZO6AuJhfhQIbFtWRgC62oHH2gNc+ZRJAiApTOYRf7aFgOFi5xTchLBlnEgT1VBl1i7JadpyBKNqdA=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.9_1548237014255_0.43969393335354034"},"_hasShrinkwrap":false},"1.0.10":{"name":"async4mysql","version":"1.0.10","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.10","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-wNti97jCFxnLKr73Q8OY8sTOMaxw9kbxN7k2MXZqEvXvZX9F4lpF81GBU9xlKTQn0ly8XAj4uMQ/ZiTvXtASOw==","shasum":"b81744d94f0418994122d5775516bef0fbd2ffb3","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.10.tgz","fileCount":3,"unpackedSize":70180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDqhCRA9TVsSAnZWagAAarEP/1wb0x8UIY0JsNDkH89N\niGzo3l/U2O7xckc9Tc8G44c3QgfZwkRvgGL0L88Rv20r1ibyo10aH91bUtk7\nOnxkwywiqmYRzTPP4lbAueuKrN3I5/IJGVBEHVmR7on1upaFKe4ZwXov5xnS\nWsvhh1aSps0SEhmYaDmdJRwqQ1k+TBUXwJXSY5EPDWQBH1oSV8iwOIVG7YPy\nNf/6wTy/hlb2KsMDFK5kOOd2orAcg+Tf3/akLGbB/RwazMt4WbFQ88NuHAFI\nZ94H+4Lfeut77NHxMDi+zncFPpAhwG6Cn8uK7hzDLVmGPs2H/CYcJX3aoS7s\n11KS8XCkRNrEFOOW7uhO5YRu+mz53neS1oNK+zDvYtKCPudp0/+C2M7wsnt+\n2MxXg78H5twilSz8dTylYuzpx/EW958PfWcxP+/ijrBHF2VmoCOrqKuLBdT3\nCQLQtiFrrMHz5QiXkkUOXqPD/q/avqK31IFZ3mSdROvzNgeMlbLkkm95bor3\n3rF2pi1c5rX/lDJiRzDCGpKRoOy1J0K2VoTXeqDz3XoeucTaeiMW3GB7xLxD\n6WM6cUVrQbAznQ+4MCGTipmkI+rtR0zW+P+AaoqLAzPInFypz95yfEW0CBG7\nPqz/yGXHoWhi2hudqCJHnkWVszrwcp8IG85UeS+VTZ7e8V5w+oz4O7USK39h\ndwzR\r\n=UTV7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcWJlD8OR9ZhjxZ4Fgg39xkt559FfGyP64WIgGR9VmvAiAX3izUaX9tAV2rkcnbWWcZ92KQUeZlsuNotr8x01t9vA=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.10_1548237472288_0.6549038469060331"},"_hasShrinkwrap":false},"1.0.11":{"name":"async4mysql","version":"1.0.11","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.11","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-Jn2/DqrVRGURxyFNUCGyFmwbbqaBv+mZ7z57xonWSiVN81qmB2FgxrpceLbcdQvAzEKDfXVX9+vSqc+VgltP8Q==","shasum":"04d497418100a1b6f11aa0327f18498896dfa3f5","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.11.tgz","fileCount":3,"unpackedSize":70228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDsoCRA9TVsSAnZWagAA7mIP/iqh63xc/im1RC+gTI6j\nUZ/evnhn9HYMD2Hdtwg8v10Pg2VJaf5ACQZKQm/Zeqcl/MejudtcqROYnKUL\noGHbD69PJBe3yarm9RBjUweDdnjmevs23/x1IouXWaP+76Wk/XmlruCSG0Vb\nsBEXMRDeBDVt7Ato0khdh9XEzF20WZyGpQ/fo9aqqzqVx57IvXbiifVQg82j\nlknFROaA3MH3Gd1kaAqHoFtQfONJ2O6vsgQ8omF2vr7lDCwEe3ud+SBzLz6o\nVg4juznhrnOIAxvtt8ceBAdRF00Mmx5SW+3lEJODhXrFfXuLYaRTBW8gbQ8/\n3aJPVRFT/4XRFttCHh3mjWsVXmOo24/Igvq3C9ZDpleOpkOJX4tfJVNOgVi3\nudtOcTxpQB42rUrNUTyhsjV/uoEzp1ui9woiDEdCQX7NyxfBc3RoN/hm5ggk\nlWoloTNEPQqrOYEUUlMdBrumfi6XyXlvnXcv4lMEW9r7nL+W41v7lbQVc7Pq\nCef5S8zWQmWfadaqw1NYhd6Rd5Twg59QaQz3Oaiis/opdGZ3E4+sqpSQ0QfW\nOFF146XPUoi7MEaVkK53MGcHWCTovenXZsykPRc6lHCJeQjOhTIhlWnUzoGx\nwjdB7iot/vX06uxvJ8psigXFsgKr88OuNYhG54kTrsyKF56uOIJltsxFmNZh\n5kXO\r\n=RsWh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXdG4UQGS5McrTtYDbcNZuxSe3JG0iS0sGNzcxitFJQQIgM4G5m2gs83bFcr/eMSmXj3ZRN3f39qpswd5yipMAfJ8="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.11_1548237607101_0.31793879090922683"},"_hasShrinkwrap":false},"1.0.12":{"name":"async4mysql","version":"1.0.12","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.12","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-o0MqmeP6f/qT0voo0Yzy1p14hE5J8oN6PVhnp8JIbsR/jQ2xe34yJYznz3CRkZ4NLCrDDunGZt6jkM8I+VBQcQ==","shasum":"f24eebb7b993c44d51256b1cb7d60d1701cc2a21","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.12.tgz","fileCount":3,"unpackedSize":70228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDuHCRA9TVsSAnZWagAAay0P/jYxeb2X9emUER20pYHf\n53J/sOa+/gzWvVsSjqVN1ujJXgPu6J9UmCj5922PQyTkI2KX+dQ4oKA7WnrU\n9y9inqpd7qlJO1UoxUAM+cFlTdMoVmehWJ23jQD9wl2w8AyD1FeeNJcdh9ld\nyXt4TsxQSL1adA3pthFy6MLyizyVpubc1qFM0MjlXrweWIAdDmBbA4NocVg5\nuCR9ybUd7W6EW0qP/FU5fDEQ21/DYdLdehqK8mOJ6UiKcAiuSMtjccu/tqM8\nN/IlRoZT8xyK/rzijLokB6WALSD+/EFqBM/q+iYiWU1PxMoxtZaQewqz67tH\nnVFWJ496EsMjTl0aRHLKeISnvgNCpvEzBOdGIuxpiBVMrhfBDZEQHE3k9EyQ\nqfKxPvqPmeGzVAIUtfFIdBg1XTNNsJixZexYUiInxvySkOlcFy5KYMxhlCp0\nqLm5QJi8M/gxkvcFc6VLYM3rY+WfC2j9ircEXa7ECn55ZQ5Xbd+fQdU00VcW\nnwqnJRe0+jsz5khgVaEBocuMnRXR0n3fK2V/lFHAtRCjL4eyTn5jL3H0xerb\nUlODdofRnOC+g9FYM/3lunPp6LY8PZrGvDcu39r04skKHE+RBQQ2t6dtTpQR\ncVgePCXB5ArZttw4+3xxRDM8xWqTUhZ0yyF8b7xKhb2GMqCtdNtcTEVkAkQO\nOfmc\r\n=wm0y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGsRIMZ2xzU1NdgbxsP7E290yHxcyAliHIBz6mNKZqu7AiEAgXYE10NG/ESdTPS1fJO70lomdjBQGfKlHsJdLMOzyeI="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.12_1548237702400_0.7519646621588949"},"_hasShrinkwrap":false},"1.0.13":{"name":"async4mysql","version":"1.0.13","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.13","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-LWCz1Vy3LGyB/SOAZNWjKUPVyowfR0uADIRXtAz1+cDRRkLLJxn/nirXE8FFDdvcZ0z9dhnJpkS8PD3lHtIh5A==","shasum":"48c1d5468bd279357b0459b2735fb1049e1d13c9","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.13.tgz","fileCount":3,"unpackedSize":70156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSDvoCRA9TVsSAnZWagAAqhUP/3UelrHOZHRnN9ofi6f2\nLG8zlJwkL+1y7+CPqc+8GOA1GN8qq29r8fF83TOzsRu7lOTAYbNsIU04hYsG\nLgwRq5iLJtPFjOSsurDrKjZI6NIhI0l7NDga7aUid4P/S2deCpponnkK3L3o\nd6pXqf+ofGSLm176lkZIahsvDxhminZMVGCLIXMomZ8WZNbzpFTogvb2GiDl\nNaPX2pjD7GzAnOopjY3qjKXLneUfmitsMQNJ1AWQDx9vjKDSWBY48ukqFFdd\nsJzAmmxRLELmwTGRN96OVKpvBd00+InFoaBTRRwUbt1kFlf8BRmQc2GQnQ6b\nfFACGjRmON0kUoahyqYcQmqwZoE8PIArbSBoixd4xw6iRFn0HqcQZ+U9QBIs\nX5XfqC9lnhUhYg/w5DQ8oQ2ttmWuP72aw3N0V1POF5EHe1u6AqKf8m7R4/QN\nQwUv6bC1EZCdAIsfXU9InuaGdTqchFVLjbrPTCyFhkVtMCWV9ZmR1hWdapYm\nh7FDqFz4c+E2et49tif2JTgjd+3orbR417xlbUdLCCs0IfUkP5HrnvbeSehr\n+zuSVtKlO88GKmwREy1evJWtq6c7x+Dtwgf6UmBC0ysV387dfFpOqCGs/hf4\nEWHtCOICB5ZV8Cn2PdQCb/bT4FRoz4bs2a+I0x/nzYhg/hEb2dgveq9xNchN\nqkXF\r\n=s4ZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEsKQAb4e4MpvGUvGP1kyljuB48u2McCFsLVJiZEDXFlAiBD8DfwDv4uKqDYjme2O/U3GX7LAJDbmlSFcUKwX8aoZw=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.13_1548237799869_0.12314309847833682"},"_hasShrinkwrap":false},"1.0.14":{"name":"async4mysql","version":"1.0.14","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.14","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-xFA+PF0TDNegYhDj0wzUJ7cu0hwAY9syw13J3QFnfLbT3wjh84iqmXXucw+e54BD3Qp217kIETabVYFkUATcgQ==","shasum":"753438de1a2cbddc56ca7c1e81268df46ea3b2fc","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.14.tgz","fileCount":3,"unpackedSize":70163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSD3ZCRA9TVsSAnZWagAAyJEP/0V/PcqEUDhe9tG5GomR\ngrJk5RIcn2sS3C3oooKWVbhbqaPGY2aduAdCEByuD5/QOtZtphhPHmEAHWf5\nAkJ4FCvMP+5GD1xFt2siXzCtyl3usoj6O8TC4oeIC3QwVO96j0VKRPx3XgDj\n0Gu9xKQWpprIWgcB7VsudvF4faBBjxbMVNMSWt0okynGM2OUsf+A+kcJG6uD\nq7ZXxpBUWyYtpmntGqvDAQwcgTZdNfLzSMF1fs1rUtcm4t35YLkNZdKEY9zw\nuluPT5hzUnCII/miqncVGoQj7uGkRNl4jciOYIDZdrAhJQNt+zyCmHeXsz3n\nLcJfWTso2VkUEhe9nMLb9KzeoVf4HTsUeyRXt4E4LU0g6fk1hGcxepGmY6ni\nlbiLU0OzsENrbpeH0duLDBDf7UD5+cit5hw644i3ddti47IS1wyn0BbpVsg4\nG7LB21mbHb3mTOI0JlO/SFv6NxjfNF9XT5opWrtpHrKAI4UBmib9IgSb0hEi\n58avddngfiIttFaMd0Zh8c6S15wxL7PQDljaCKa45h5h4aXCr10Kf0rbQ/vE\nUiFqr+r2blSm+hdTQVczZJL0WMYGFJw24PU/eTEHwVu8GQ0URcxRu7uUCrt+\n+I3kuYs0UDRcObI9uxBwO9C2cJ4fvAByb0hPbGQcvLoMkhgK3nvjFIzygsEN\n7bJK\r\n=LS5T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjbMwVjAlmOS57Tg3x51sVe6o3ZnLForwd0Yljo35DxAiEArrthnwl3zDykA6Ljx5Nkp54/ZNniz7xZ2Vw/MIJCGI4="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.14_1548238296136_0.49274506282967323"},"_hasShrinkwrap":false},"1.0.15":{"name":"async4mysql","version":"1.0.15","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.15","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-1K+EsF0DWQ1sjAXBtFVIttXbzOgl8hokgwj/Hqg1Sz+fHkd3LRFYBVzRzvGaHhOJC2+jvd8XfcVtE0qP7wXTjA==","shasum":"ff2e85605724ee51adbba07214fadabc15cf6aab","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.15.tgz","fileCount":3,"unpackedSize":70052,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSD7LCRA9TVsSAnZWagAA+YYP/RXLMAjH5EURfyqH5vP0\nsA9r1ktBbvNMaUsqU9de0XrBjpK7tbXXsv79/gsq+1jwcNmyvYJMXK3+k04L\nL8aHnCSFj8qvKDQqFyxxsnU8iPaOZ3hvFvlnsJ2Ak3NqUgSn/cUCOrtsSbEA\nFWoso3VuQjwh3IMcxzt+bU/iCrAOl61UY7rJ118mEyNd1QqpcIsXl6BCRYbm\nyIxoqUYZrGT2/IPwL5rXQb2B+WZ95FxZUt+DDApNH0koHVSl319qBrzcSS8I\nNaFsfD/Rybzr5h+17k/HNkhCfrOrw8gNDAlkzxAmnppV1JVzZSpn85V+atDs\nxOv3c9XuZr644kCl/oCaGIUkU5nnsoLE/7j/KHytvkDeoJbImChQlIUDXH1S\n74imaCRSpWnrO0EEbzWWfDkapyhDORHkvwlxfYal6szRCZMFALNcymvIBQ9f\n6qaAtKp+S+kmaqqfD4y7EgO+nU1LEP22WuXOh6lVtKkODfjUXcNY9UlccDC7\nAaK+pFZAo7AQ6X790vGPQTBoxKFWY2Amz3fqxfcTyWW+T63BIHxxyZ1rLCv8\ngI3SWavz2p896DgzB3Yl61BeUxdIScjtKBbOSh/WOhFG0x2rc4XHFMog+/jd\nWNcli9xmQYbIxCAn/IpwTyGNsxAeMhB4FUnOix97aCLpkoo3fivHDYTHr9U7\n0WV+\r\n=CiCO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEdT+T9njiwWpOPY2nrXgBKct5IzXWobJSC1ZGzLt9uwIgdfZdiR/X65Ah7oJ94VisOkwJ95Uc7QNC759mZ7sHB+g="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.15_1548238538276_0.011758740554936198"},"_hasShrinkwrap":false},"1.0.16":{"name":"async4mysql","version":"1.0.16","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.16","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-PWA1sbM9nCGW0v2iW4ToIbeAeKOvUILqasaDqJzrDHvJfEVdlYaFpb9YChaceCRxcBnbo4dh+xaUx0tfvZB/3w==","shasum":"b76d1d899d830ab683c34bf9ca8757f5a4bcd611","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.16.tgz","fileCount":3,"unpackedSize":69965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSD9GCRA9TVsSAnZWagAAjKIP/09TNZ7m9ITd3Uk9QMD/\nnN8gjz/o/B9/S22+pGfTXmu837zAER3BTiPvV2jYSOvDAF7KqHNkNrk0F9wN\n9oTZ+w+omKWzDzUVk1KPaJ4+dutFaJcnXeN56XLVnA9Fpoe8r0FNRoUUyaxP\nq2Khwl0RzXWuu2PHB3Q2HdKv4UQ2EwHfn52KqwpRIkWZtX1qsKlS2JhoXzlF\nWQDEbo3juhpUyglOXG7Q/q7G0THeGJm8Fb+1Srsnzmb5Nsr/rfMLVjXx3+kz\n1MzVBmpdyERw5Xj/riG2yDUWuSG1LQOhw3t0uqZaHmm71PyyyL1BB4uI/Gcq\nYzl1K3Cx9WtDyPU9qAzRvVaerTbzBGT3hyFcayW3UcqRLpwQamt5RLk3GrSw\nYuQApmenpScgHANMJsbfe2H9UDc3QDtwgxgKmA+d4PSw0OrujTOxzfYi1ICj\naWBLs2D0TwQBQwPjg01O6VQGWlhwjvS9f9h07eLnGxPhtBAVswrwIvotMMhl\nqmaKWWFegpsx0V+pA4V75ENJ08NwmOkXsOqXbQo9XeHeWBrF67z1/MF/eJGg\n16FMI3QRpEWbsgEzs5I8qiA3rtIWuesAVwO05wuF/qmzs6f0L71qzv80qGRO\nD0m8WeZtb42gBr8R4OLpjxAAcHIpIBt+ZW02uAtebW45oQNU7FgXrx8i5d3D\n2SaA\r\n=3XC8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqSbeVd9igW6g7iDgA6TNlafptXg4oho49VsgAhIxt8AiEA964VtR+pOjhzUyjecUpPDagBtE6i2gvvuS4pX6Ufag8="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.16_1548238661958_0.20756452635641032"},"_hasShrinkwrap":false},"1.0.17":{"name":"async4mysql","version":"1.0.17","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.17","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-wprMWC7VOy0tZPEHF++JJtvdJ34zwvgf9maO1rV5KqA2TPgbjlUar8adlywIflsxPymbTNH8PjQznuZOI52bOQ==","shasum":"f24955ad4afd1d44a8819caead4929999d41cc7d","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.17.tgz","fileCount":3,"unpackedSize":69883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSEBoCRA9TVsSAnZWagAAq98P/2t4f/MGbtNAmumeD+A9\nCPsTXPF+g8NJv3txfk52IfaMGyfWBEdU1NwOhjbQAGGz+jWluNLU1+sjg7uM\np3SaFjL8hqXrcip/ZxeRPMVYhJOG+yThfmhXJ7PUr8BmbDpS1It0YvJQeZ/Y\nXFHVeviUDrKzDGxKoQOs4Mc6NVq8kuhxRIda1Lv+Sm+HnuHAEGl6VrbmyCeL\nJ4UpiXluMULD5Z1V7kHM7paZcnlWbEb3laTtk+UiX54n4ZVFHfw18rZTbUWr\n3YCV9MTTNJlaxaZl+qaVYsneEFcCv3rZIgMJWUMKQHxRdmJuPK2J0joVhS3e\nHQD0qoyUaLV1wFlTKmyRwwOAaKJTxt1yWzArFE5jL8+WEmKaycia58JFQvi2\npBNyD4Ixqzg4L4PDgf0ogNRnrWfTRIcADdRGdxxAA4lqr26QAUcUV0BfhqOF\nq7s1X9RjYP6ctqzxnFFtAQ9RHSIsKFZXNbCtNb6HJsXhnlFbbNJwejaKSJHQ\ncAoRqKnVATpGd25608HbRlPVOjwiy1a/VbwIUqe1VfjGOGQjwjfLR7mqyFFd\nsHdg1F2rAkXmpsC/AVXanmF+su2O2zr0w6oxFUfdni/uVARf+6V7FzX+6/3K\nljd+MlCZVp8twmQaLuLf9R/j0bjVNigEwUPM/Fs3cIiDJeE9QmZUCH5kmUm1\nfbbK\r\n=Q0sq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFmT/g9ey7lQytN4wNkL/+F6K/hOObdYpJoLzk/PFloQIgZKWLf0yTfbRXd4ishbiLriOiHVd7I+Gssbd7rjRAae8="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.17_1548238950468_0.4492432926821095"},"_hasShrinkwrap":false},"1.0.18":{"name":"async4mysql","version":"1.0.18","description":"本模块旨在可以更加简单地同步操作异步mysql方法、或者异步操作异步mysql方法","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.18","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-ljdqACcbooYX8oJjwtI815O81dE+lQ4EXyEwBYOOocEAMZYw6UeVlSUXWDZ8OZMoAcIGkUCqzRRf9ZT0ltjAhg==","shasum":"98e10c330a86df66ad363c3f80be28bb0cc018be","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.18.tgz","fileCount":3,"unpackedSize":70008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSGkKCRA9TVsSAnZWagAAujUP/1pkySrpHMbii8N+pPoH\ncZNxsteBzZoeQ3AYJ9ekwZ0cnD959uZHYSJSOiikEq21TAYgNrPKz3biW4GC\nLwlFn7vJ483w97Q+wLlbmob+NOaQ7JSzz/uSRTSDl3hfSW/gkUaAMN1/42S8\ni+toxGxlGmhLJx1gdCjlqhvXiFRMHRprQ4ULXVKiJ1p26jZxsnobl0tpeitR\nOVSQzmCQvH/GK4yWSl5plnS8baj9ySrDefyJ+b1tIkvCWlU5zz43pRNzdiEd\neUxwZA1ipBSUNU5WLrhIg6NeFWsU0q30T0p5Qt+NmADxVVDehYYgHJZrILuC\nlzY4UtTDWr3CnR1D52yA288MlKVNrEtUJRk1GLwbgqzfwMZYtYrgeUMCz6dM\na80aDY2VJx0n7FhPFEND8uqoxPG9QEEK7EmJLbuHC/eZTexLwXnRYxNdXyDM\n8SsOIhTJkChQG8HnEHbDIwFqF7M0Bi0br3GHAseJjM3c2UfHj2vHI+eAO+uv\nejIuFLc09vlVdK8c680uI6+qAKY3RgSYszb0HfjzvwYLDP/1NNg69jXwoqoP\nSoTYcBYleiOsAHYAkv49ydgis4+BIVq/+VbCQcLoVxh2TIJpdOjxWXThWMZ8\nzdmoDdN5p/u8dJPkJEM6zB8lsbLtxPBWjdirO6yxgxUmIPt8/gh8d41Upm31\n14M6\r\n=nwpi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBeV2f4y5JV7EI/uv9ufjEQx4Zq54+0RLmuqHE53zLNgIgG8Fw3aKDq9kFJCmnPmRaBQawqZ5CJ9IxxVq2nrhPZik="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.18_1548249353259_0.6985982946839442"},"_hasShrinkwrap":false},"1.0.19":{"name":"async4mysql","version":"1.0.19","description":"该模块旨在更加简单地 同步调用 异步mysql方法 或者 异步调用 异步mysql方法, 优雅地避免异步方法的 回调地狱。","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.19","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-kjzzst4/IcLL8bfBzq3okx1/6y4C0u1KaeEP3G11qscgWccCI2IZ1wkLZFtdl+jbWnzGh0xTDbf7+dtnUxSSBA==","shasum":"49037651ad7fe83645a4e28d73469cafd83d28d3","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.19.tgz","fileCount":3,"unpackedSize":69889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSHG5CRA9TVsSAnZWagAAec0P/2x5fYk4Gzzd3j/oTKcb\nuR1zpI+k+fwN9dqStyAYbCrdPI7ZViJh/UrsW1f0+iXNBRtaMVJkYsqZw9TE\nK5ZojlExL22AzREHaCljwCDmIQRQrZC5Dk9nQZFcs3cSs1Om1tGcdFR8IsAz\nAX8LwIV3uyGHsDYeP0ueS9TronRyUqu1V28vJ+4lkhur/tIkx2N3ljDLxZDZ\ns/hzeCfyJ6PZSllsJueKo0iBiwV0Pk+loP1enBfdYtaYAe02teaNgcIHmewQ\nbOxCaz72/P5car64AUtMTGqDygA/T3DCuMnrrdFgTwtOkbOHwGThl4QvFiZ9\nTlm2/e9tt4Dv4jPg/LnGwWvVDDaLTfE0KNswGVuiLU3RcbpPKJZxQk3ACRF0\n4B68GFg2f7BN1te+nODrCj0jh33VzGdIxwSj8h57gEM9cLFldGv4J9XNZCpR\nBGOh9n8CZ35JzEbAP2wjx7mDOgFWEcqcl/uyTqFCSA2Fnt36zgyZXye0Zhfy\n1SY3CP2FL0NrH9n163t1DhAKw8afRacNyL9DaB2Wj+YaWVVOSBpvshqFeURa\nORfO8Oxn7cVqAm5lRlM9fX/r2+tuoBxmBiAjQmnyJZqiYRABRCdaCLHpQaA/\nv8Yk22PYm5xuIpEW4bmSbKdqUXdvw20k/dWzLVPdBj81DCvcX2GpSGk4cOdq\n7o4G\r\n=8aAp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDKRsrp+i+wClFyB6rpL6dcPf4piladI73/p5DdD8+cyAiEAs27gLldKyVo32jkWS/V1MfRUOuHM9tP1q15fujxdwGo="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.19_1548251576354_0.4404688262080798"},"_hasShrinkwrap":false},"1.0.20":{"name":"async4mysql","version":"1.0.20","description":"该模块旨在更加简单地 同步调用 异步mysql方法 或者 异步调用 异步mysql方法, 优雅地避免异步方法的 回调地狱。","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.20","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-yevZgdsn/eZYZlnzbeJ/xCi9Hl6CUpSospuZNYmn7oqRorkXc+faLg4Adthpk1fVhtdTurifb+PWnUgUprwb6g==","shasum":"792d9c409f79989a376b07501be5986a27163cf1","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.20.tgz","fileCount":3,"unpackedSize":69862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSHg5CRA9TVsSAnZWagAAJ4cP/irCauAsThWcJzTRPOto\nt/3Nses/vlfT9xBvDm6FRlhg7AmVjGgCT8wvR/7cNsPutoVgf7CyI5mFtODS\nwLpXyHW4KR1SqydSa+n7Kj1mkZl2qsQNClYYENwUyoCZ/0xnhMpAWDTBk5pe\n8sDx52QOkGI1LYmM8/7J3SZFLMMZtGh5SaO0SrEsdfcsa7CwlYAy7Q6Raj/r\nVsAXuOcApmk4QelgHhhNdRaeFzjjhFhISPY4C0vCxUd5OAQ+slYzWQa0jeHn\nCH81mXPy3GfSUqFJ1O11euWhItRGzDe94Q/xv5jwHSrXdQEJhiskoif5xTLE\nek/rIEtrR7kuZuSe4mPys6ucYqpq31UX2Q1g/gZoC3P/HBGqELODLESC/1xR\nX4cPhiAPqBVZsg7cAs8MhO4Y9cgD/5zqpgWr87zdO3Ergs9rzMWn5z+v6619\nSD3AQDmJFGkxUm6jumjeWBR6J93YbPzSedZjxncH0mMejaYrLdlEXUp/VT6L\nwk6utf1UTOX0p5SCBH4RDWdMTW4Xkd7WYTckTXxbuWqIGLSbpKdUNNSsUEml\n5RFE5nagqVjOArV7bQZ2YDfBhxUIogJuCFCqx4LEo6/6c7rFQX/tGmZysfyC\nL874Epv5srY/rCKOJFIRw0TvSoK13OLoz3lRgHDw52B1B4nNd1SLe33j+R1R\nHYUe\r\n=dcTG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbXWDgJdieSYuT7Jusr/0kZg6By0VEOLt4QeKct58OLgIgO0Xze0nFZWpJTWdkGK2VyxqecZNBB3PU/dcPl+SgtTY="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.20_1548253240665_0.2426665423790033"},"_hasShrinkwrap":false},"1.0.21":{"name":"async4mysql","version":"1.0.21","description":"该模块旨在更加简单地 同步调用 异步mysql方法 或者 异步调用 异步mysql方法, 优雅地避免异步方法的 回调地狱。","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.21","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-ow9tPx3QC0kn8f8c1AYTPYpY8VH6EjNwQE2KlZE8sL5YrTaGp69cM/jbJiohKb2S5Vgs0tKovZrFrdNX1OE7aA==","shasum":"836f46cc2dce31f16ab176477422e1d4e02521ad","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.21.tgz","fileCount":3,"unpackedSize":69566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSHtPCRA9TVsSAnZWagAAkFIP+QAGg/m293d3Vza/QB2F\nN9FHYqrF2vKwqKBgyjGKnPWktvM0Pgy1129E3hgYZW1SajKYiW1EOvnuF/Qf\nNWg1n2G/1nqnc7xkkhUdd5k30gLOtQxF2uXKYSNFc68ehOK/24sCO6sDYdA/\n4IkMSUfrdrGvd06gqB6EFc3znUJXZajIEadM+QaDW8arLx59USn7iffdwB48\nFgyjoLd8IQYNkVCmJuMS4ngOOYH+Tjvu+5ntHn2cim5CoQrbgqtIXFfG/U44\nVHTOnFkCdqDul6TLw7FPgT9sDb8tl4wyXRb6hwfMJr7XDitOSezEQtzTU/qL\nZCv7ipPaKuGGhcx3YbGnjsbKiwuCPd2cN6mm3nvIJl8bcEGZMC93K2Y7Ou07\nBRn+hfZwQVfyTR50Qy6cYDcdYzK0YkjXOxWSWdgf3HiXLnzEAXrQeK7KVtyl\n708CGjmLWVQgSqYmSvVzM2rv6cRu3kT1BzMAwB1zHgXmHI8h+v5vv5D8QrUs\nsreLf2Dw6Jw6fhh0y6/LZ54+5HC1+Nt7Dvvp1B8VHmBWnOTHvPGhQwNEFVc9\nU4GsZvZovAE8TAAG+Vuozn1NW81OI0WG7/q6YsigjNmTL+kGiMe+MuwWW0HD\nWsxMBCNQvQZpHvWrvkV2RHp4Nhkf/iT+O5XlMo8ujKp02vRDiQzLJrFBdtyd\nZ/kp\r\n=wVto\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcUIJyDdF11PPNai0oLAjZ/ptIK010t9CRCj2i1+KcpAIhAIvwjKBFZEkIdiiAJA1F5wu4y1XOCiiVlHIH3+Y3heQP"}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.21_1548254030776_0.357309223004487"},"_hasShrinkwrap":false},"1.0.22":{"name":"async4mysql","version":"1.0.22","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.22","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-GNbL/82toQ/L79Oh6FgNgqacJ5Qeim3zji3JHWpC97Pr/CSub3GFeoLlE7qv7K9m18ybw9KH40gFuiESJyFgVg==","shasum":"9c0431a0d9117aacda52acead67f50d4008b4f22","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.22.tgz","fileCount":3,"unpackedSize":69589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSH0QCRA9TVsSAnZWagAAjAQP/1RzwNErQdGCsFA1ckY9\nDFS5LTdFGefcbU6aAhdNu92EfjGtnnouBG+nAJn93BO/cZDQja2FVqdsc57Q\nm77XgpdQ4/Wna+mG+RXwDI00iV4ojL71Uz7bNBcZAYSSacKf+thNkAGrjYnz\nYT8iL5wOoOCtfEbo103lHn9yM0yyI7xsNGxVa2PnJ6n0D+NkYKWP8C9JHriN\nrzN9RvLtaVlB7ALfBQAMHe1tK6rRm+VMGAepRwlBjSUSneqEOwGZNDVWtBqQ\n1KNEJh3BNSx+GHB/dCv/YQbW4XaLOCb0bqSVSpcTv7kVAGVF4Cu0lpaWid14\nZ78qUP3fT11qeHK2Ma+6bZ4owj3LY10qsWxHnvW7Jv7bQnNBKKeq/50HDpO3\nz5RfRD+uMtRPCjk85tq+b8KMuMCUMZQ3dZv3K1rrl0QtnrUIKxO2wyDSORlq\nqqc814u+A5gKzVMSJVV09pyzMGZtGdGKDRixiFqIzGd93Ev663JqdGjnZeKV\nQXomKEX/0ll3v8eggM2qGenNFSkY+MPKwxuLZ0YUz2AqT6KzwAJvxwyBRMWk\nw+Rybrfln+G/+eiHt8q+xQEWSOgJUFsRkmTv3wRJ9RJW3Y2IRou4hPPupiQt\n9jdBmWLh4SFU3YIN9AriVPo7bK2NMg8S1YsZxn6+hUrZsjSsoLCmRGzP2i2H\nknm9\r\n=WzGZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6Pt3v+BbdcUDof/bYvDkuKSYy0QcreZqH6onHE1+4JQIhAL8QYEExZiFxzuqPj6h7oD4//beXTp35O9Jqgx16ubnr"}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.22_1548254479885_0.22560452200465342"},"_hasShrinkwrap":false},"1.0.23":{"name":"async4mysql","version":"1.0.23","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","main":"async4mysql.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","async","promise","await"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.0.23","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-XRPjR+MVJc54Gc2Ojp5ZYd7NlLBW9PDN2u3ralZ4NMmXPChvtjlQtbH2JP7Gpt8C57Ov6eDoXRavkyIdZPKPnA==","shasum":"b66be4fae9055188426cd10c2741048f81d05b2a","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.0.23.tgz","fileCount":3,"unpackedSize":70889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSY4UCRA9TVsSAnZWagAApZIP/izkB+fQcU2gXZFx7o5D\ntn5roVM+5aYMBLIkTpve4x9myk8j8nbqhdHORZXhq6urVykxLSH3P93rvGTb\nLjuv2+/eSZnDDoDH6rJ0bY8HiePGU412PO0YsffgUyVPOXS1k6gnh7Mtdv24\n3IMDXpw88b6G4tJKoXrE57Veent1oy3MKJwWBSass5RB8fy/sgdYeLBgQ7Im\n6EQa9Dd77VFRUxJDMf8egH7jvSaRX3BJwEre1jNzy7IkGtugOwyFcoIoX09/\nzNvkQW1N+AaN6kH5nOVvM7wif0EQWuZq06HctCJUJ+PyxnjrxUfnzmij/oIy\nRYHP2U3oQtQnFWCMAXdFLEagAcvfSRi0MsHz5/FQBE+tDXkSUdYRSQUD9ICM\nGVe7xC+zBmaGhLbNRulmMNlC7UTuh6AmqO9U+Mlx9fCxR/mpfP+P+ONRQpWi\n0gDO1VvIotZgc3UmfZfky5ujmkmY/nPtM8z77cZJLeB+32N09rErN6i5KJUA\nppZvHt7UlnipMsezqARnYGi3GCS7XgUTs/q35gDJEERcj9e+KW0QP9LMP91M\n0iroCPUspDCPhLKdWSUnNYgObvFZYH6QyZKpRHh1hgFuF7NoqgTp7wLJXy/A\nc6aXDM0KEQ/v2HQjg5wDMxtM4ySXKQbRjJUeH2AYHlM1aa7HfuBVTra1EkV4\nGUs5\r\n=60V+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHnBa9V31Io5MjRdbzhpNsxs6YeYaTCEBqwaoIeifD8AiByyJeF+Ybs+fE7aoBn/girThVwGYH36KFmn1jIkLLdpQ=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.0.23_1548324372022_0.04765753737301526"},"_hasShrinkwrap":false},"1.1.0":{"name":"async4mysql","version":"1.1.0","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","await","async","promise"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.1.0","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-jG8dTJdNEZmbE68nBwe6Vs3rYIaUyKQfDRAkyecHJMecYNNL17ipIqynmH/Ex/nWKxKOcqT41cJDtM0iYJxM2g==","shasum":"74750c1afb8e8458d167ebdce15ca3edfa08efec","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.0.tgz","fileCount":4,"unpackedSize":58789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcURpoCRA9TVsSAnZWagAAYAcP/33ISuxCLSOsERPLlY36\nQoR+t8ip29q8i+1wEMMcm2Oqb/F2kts/z0/wws8N3IATWGKFf/nqhhPZaaVx\n47XJ0QmwAhtP+LIAf7kBt9U0nCIYLgVp2PrGgXObhnljjm6h0w9Zhgxu1BZB\nLCIt7dNWj4oGvXZMTX7/vUkkqMISsvzZPmXp014OMempUPpIFXTp/GSEIRPC\n0CUAZ/MDaAvcGIjMXHp1LzRat26B4UFTAZwdnv3veAny3qxTKtoxf3PVOfUC\nZnP56mzB5xhXC14TM12NSRQLcJSVe6hCv9Vd7oXSLxIPKPWfItIj5iFOlrjw\ntCMdLpLTCsTXqaa8tBwDOxV/kSMwo/tNZkHtDYxJxHJETjSw2l2rKqCYNkIo\nXjzGGBW8W/3HAiqZzTSdlk/nNeXBtKFA/TqjdXyMcVdn07AulMSu4ZRNBu3P\n2Zu+JToRZxQfNBHJFc6bJpFi1JpxvasFTvKayOgjd6fO5OKQD5e8+0qQOoWj\nJyvBAwqs+JeQwT14JwebTf5XL2XqEmI/f1uyjWbLaiT3D1KjneMvk3cMApAD\n8InpJRc/38RPI2YcCGDE/V2xwBYIpcBNQOMTSCVgEvcv8g7+7M52qqTvKwBd\nRUUPZcj9LDSHsVif7J7yP4RWNaKye3uPCkG6bNt/Pe4Sb6VcwQJvIuVfGtgU\nmsIe\r\n=SLiJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCW1acBxsICa+ykIZupLb8G9HTEseCz1I/JLXi8pP83vQIhAOsOjId1WxrReK/p8ajA9g31s7J4U56lbkH07P5W54sg"}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.0_1548819047179_0.6964598934445672"},"_hasShrinkwrap":false},"1.1.1":{"name":"async4mysql","version":"1.1.1","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","await","async","promise"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-nmiraTKPWOynkTXMIgbiuDtvH14yPNTDuOocdDXZjbFsJaplv+tofpp4MxPQz0BB54QzGTNPVWh8V6imJwxYbQ==","shasum":"aa764aa158294123960cfb5bf6b0f930179a5b04","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.1.tgz","fileCount":4,"unpackedSize":58812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUkvyCRA9TVsSAnZWagAAHtEP/jXctss7u0+p2tCXfwvq\nuk07P3K1+fZipXw5Hf8e4dkd7PS1KK8HbPEvIBnz3v+XTCYif2LNMErxTYVU\n4NCFKlaa7Az5fVSsaQ8CBhum1pU+pxl5mdBm99AvzWlPWOBCFIj9m9UcUCER\nO7CyqxI0QC7xwFT8HiAEYEkbO+xaHcIJSv+TSUNwRRXw/HtHdnEADQZyd8Nb\nnRHU5lbCrqs4xGDdz0HUo6gC4mOTPUGY0f28x+Pacbye8iYs+c9rb7pieb0X\nLxvIUdr4uRn97UZMvLanFYpwU83EbRszGukEhEGW8Rm0b/H86O+Exz0QfYAo\nCrp2E1SUXpc+E80M1cG0ThkEBekUENKILLveAE7R5qr5N6wSrdO9ZOKfHz/y\nYnvPranAthqirpla1FZ5zstF5tdJGTz5NzyuX3k5wcov8w2F19MlisnilidC\niNxLae0+u/160+xmSMPgyT5hijef/cZFd/qcL9rrCkHFVs3dkbiY5mVZB4ED\nW+xNKkZsHwIlC4sBw/7qwG2qJ1dNBXxU33/ZvJ1IgbF/w2CrPZwGQgPtbVM7\ng2vTXKodf6Qi3jxZh2jaI/D1LjOXyElzZg2U10oiNCW1GbpYEj/J6Rv7RmtN\n6p7JUSvFr5psPMGXLNy3MYA/OOdBKfzJnF3Xjnsf63aKNRDxY9pEm8De90Gj\nmr/3\r\n=uqtz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICecV5LoqTAtUn8vWjixSTQAvI8CX+qVqg/Nq1o7TP29AiEAwizpWknPbDdxNFeo1GxN+ClD4hmy/snI6JvyP7JxWnQ="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.1_1548897265348_0.7118095649720828"},"_hasShrinkwrap":false},"1.1.2":{"name":"async4mysql","version":"1.1.2","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","await","async","promise"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-mokxB/nB9p3NKyDf7fv7P9/yUY4an5or/Oe1Yj0UZCt9A5wPSWetxo+aDVEIEWoOO5nfeMZuGYm3BiT9nlWb9Q==","shasum":"5440f3a1d7372440ade7960a49925a699239ca42","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.2.tgz","fileCount":4,"unpackedSize":58874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcV6wCCRA9TVsSAnZWagAAWxcP+wd0cs3n1iao3v4cPOi2\nla4HnGLiQPb3i0XFbtrEyVaCZylJ3vGz8fIX3OXYsM+xcjVZgMitpWmTOkRE\nR2w7FKEMjHkj2TVqWsFJbNRAL2pM3xcoxRb39ZgMJvDBHUprdyogKSWh8y08\n0ODJBZAbBoNR6o8yi2Ga7FufnUL06pzzY+wSPgmcPu6hWM90N0itzWo6zH2U\nGqq+w6c/9l0WG1G8IjLkMQJ02rERw46Eu51K9IlntipxNXlcyIZ/h43s1kMK\nnHii9Gto+KkpLIQdlhv1m55p0+arGTSxDaRvltjc2mIG5Y4VrGFE108xNhwS\nYxUGcOXsUkyluhxjSkyHuaMGra4DEuVKvKchwuTSTcPiUx41sXkfq9KF1lcr\npbVeP4xbo2MTBh1xIGfu1mEDpNq3rPZ0+BrGFV6yHk9G7i/UxpwNq1osxAim\nR6Np0gGBX0CdsK5PfNJiunPLkb/pZ1u22nQHw9t7XBEqa83E2uIZcfvXwuF3\nAG6LAxcY+Y/qwLVJrTLTC4IP7hBHxE0wzQQFSC1fy9i5Kx/uAciJWNtWIlOe\nstOy9KriknkP79hzOqrr9MMATZd79O3BjD/wtXLOt2bgx9bP8j1JUsWR2ibl\ntYy/+b29BeOaSUtQIk+i9UJIhf5C6rQLSWGOmNT1SoY+rKvJA8sLE0CTtCmd\nV4Ri\r\n=//+F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGgzdJXD/5nlO8HhAb3znw3xqsYmmE0QmaR5vWC5IDUjAiEA+jEVBdBuSAdroF84/mTBXbz3pGx5Ftv/P3oih0c3GOo="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.2_1549249537058_0.1459581180368974"},"_hasShrinkwrap":false},"1.1.3":{"name":"async4mysql","version":"1.1.3","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","await","async","promise"],"author":{"name":"Uncle Mao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.1.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-4qF1geEa/0AoSI3jYuDsYPajYsjVZLKFeg9A2a3ZnYkTSeEQ15IZ/2Jnby5USwBB8RcicBa434mK2v5NnROvPQ==","shasum":"de73c78d5d5033bd4e57e67a268570cd86a9f76d","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.3.tgz","fileCount":4,"unpackedSize":58977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcV7FTCRA9TVsSAnZWagAAIfUP/iOcWqX3dBruO3mXLv+/\n4CFMySrkqhHcdogwpVTwrP++4fQRXCD8tBDr0Kwt/fKqxS3AyncmztOFF0IX\nggKjBRM2UDAUzIJwCnm4f/DYNUhunb+XR18GMj0Gsdvan7qsdyhe3C3JUV1W\nHpoxqwfVYbJ8hkXIkw3BN/9J/C1vQiuyjSINSwPlg6xs8rrCj2h57cJJWOyJ\nxgmiE+gj5SFfp+3BIdj4d1joCXE8f+bfO1et++pLsSCefGhtJX4scp5oW3Yl\ncaAgMi8NCU+8acNAWcjlQ/qLbPhWQK2yJp81WdS2iu5sThDFifoFucfbtqyS\n8nMMjR0HJq50EcYiLE7WvbVWm288aBtZgjXin9DUHpYPwB10WFC0RmyGJQ2P\njogwnQuOBctuga/wWqfAmlLOuaFHpi8xpcCFZtmtdEjZg82FJeC9SDKK8vvF\nQkzQscR0aPD/5Bg3s/VpIaxJ6RnkmvuZnnGUzWNuarW15EZiljsMB/KtIH0H\n1MIin0RZceVLymFnEbXTXs9/c2zQ4bBs3R0lxaqV/IPwtde6S8I7AgJMy2in\nXoaA4W3ymiymDLBc6IZ6GZIqeN032y0itpMYtLI6gAlJSLTl4n4RGBNvLviz\nilJoSwxN2w8m6G+1PWmFhabPX9hQEVIUW5ghGtcx1Qfv/bIdi/F68nW9kH+o\njABP\r\n=KH2S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpdjXdN+6cTs5deU7lzDibIOv1e0+XVQ2QV2KWRXL1AgIgV/KnWBCVfUxlf1Zv4MDXL/bm0ZXamoJlMIVav3CzSzY="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.3_1549250898702_0.7074685925662672"},"_hasShrinkwrap":false},"1.1.4":{"name":"async4mysql","version":"1.1.4","description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","homepage":"https://github.com/ModernFarmer/async4mysql#readme","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mysql","await","async","promise"],"author":{"name":"UncleMao"},"license":"ISC","dependencies":{"mysql":"^2.13.0"},"_id":"async4mysql@1.1.4","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-GR/BX6mLFmnFHXKYO4F3hI1TIqnkRPYAOcRApw83FJogLo/SMRH7AWW4aKwW0ADLxvI9sSniZLoPAsovVZuaRQ==","shasum":"4b7f3c2e870345cb4b141a43d35a94517aa187f3","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.4.tgz","fileCount":4,"unpackedSize":59249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZRMLCRA9TVsSAnZWagAABGAP/2ch7pXnU0j8Ng+Qr90V\nlutsMNaoxJsN5NoZqYo16q/ufUGDmBB8vSK1lIzvw7qXFra2PYTOJcoM1RD5\nqGAsz5tCr9KHYnpZXGf1qLIfkRmEly5KumKFjn+heQJ3+dKFmnPf4GQH/+L7\nzXJ2sVXkxbKIrSGQ9Au1IrdkmpUQ7unr2cuWGMUmWLOUc2BSSb3bifwxUzbI\n0vlv1DbDE2HwrozJs/vSv4/lUnzRSPEQZJMb6OTX8eqRqjiG9flc2pED6uC4\ngisWrXaGuStahO9HVbGfzrXP6X7MKcuChajvdYz5A9qqKiGvCxgP2V1pcetg\nLqR3lh75RS5d4fWtlMIsvIW/Rb/2l+ZueynsJB5i9e7NqOe6Duyc/xmCmoBD\ngX3lC+eBoLiQLmmpodGZ+Zi8DWfMIn7fY9BiHKsnxsHgmn3co3ZGkFcKh7Nf\nUhKiAwK/EWTxHrGjYU7duIJkDFs0Jd7+49gpmYoA63xeK5B8QddS/w/JKWVm\n31hwr+od8ruI3IAJvkEMduU46WI7xoNjEcM/Cq87/fHlw7WhrqDgpCRbgPb1\n7qWzB+L2BroJYUcHfkW5HskmXnSfz79FuirO7ltsv+GL+K0o6OFKaF/cG47H\ndNDnEbyCn9RatthpqoCP2Ji1ULm54F1UN2fxbYxnjKErTfT6YCGDzD0xhGc6\nsl6+\r\n=chk9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICYE8N9NThP983CjhOWq+TunkIdDdUsKSfyiTncEApCXAiEAqNus5Y6DB46LWJH/2RPGEKPlRXfj0gDtuUpzJGNhrRw="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.4_1550127882642_0.3650286574235051"},"_hasShrinkwrap":false},"1.1.5":{"author":{"name":"UncleMao"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"bundleDependencies":false,"dependencies":{"mysql":"^2.13.0"},"deprecated":false,"description":"该模块旨在更加简单地 \"同步调用\" 异步mysql方法　或者　\"异步调用\" 异步mysql方法,　优雅地避免 ( 异步方法 ) 的 ( 回调地狱 ) .","homepage":"https://github.com/ModernFarmer/async4mysql#readme","keywords":["mysql","await","async","promise"],"license":"ISC","main":"index.js","name":"async4mysql","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.5","_id":"async4mysql@1.1.5","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-XgPSPB2ewOksrK+s1cpxBfm92vCdm7k13XWuPsWIwneOuDnfZfPdq0VBRplyrtARBH6IMNUIs3rvLdfcusZIOw==","shasum":"0bdf79455e9667893be49c7d048c1caf9fc42695","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.5.tgz","fileCount":4,"unpackedSize":59584,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmdvjCRA9TVsSAnZWagAAEwAQAIGIsOK6wwSaThAMvInB\nY8qvHyArbHL1MiA2m23sQ9EbEJr4n0LAAL1gNPkNqdiSmcVcRtw8UXTZ/NYx\nboWtzx7Z2DabUWZR9iQjcq/MsEKybhZpNuA0co63QxFyIAqkmMMZIF1RhTM8\nU2b0DSksk7bmOkTkHmgRKnsIZI3IFptQ3IJ1YEbcMe/0AUPZTZv8Z/KBibqZ\nmyBdP9eJC1ng++VIn9rDSMJPYht87LGBt4M5N9iFynq+2TnXFx7e+ApPwBGh\nA7UZqcIEhv3QwK28Bly4JNegaK5dzVgU20QXbgy/5yu5MnT8cQ1Rg32dMw8N\noY8Ps6U1NG21ldc+zNwdwHVdyDsWAruYK7D9bVHM/PD6VkbGge2lqaTIxJeC\neZShJkvXXtLNPzIuCiKv66z+WHf1tX0KwsXsolq1ggOw1M+OhlgKFkJouWA4\nWJoMdsgJ2vYLuUOvzGnnfWQ/ODoyC9Y7bVn5mtmS7t3nScgiZQgY3p3HCotQ\nnJZiBxBGcRFy0wdSDuxQBbD45qMjVIIGxV2YJFs4ytrWQS46aUQxCiRxxK/t\n2wbOhB1AVPcs4gPiNiud6R1HekrcaDO/CaKtOrUn51/sWooX5l+evCqJKkCz\nDz5zrCfvC6sMFbGevuz/2+USHG6c+vIaR/X2o3OOjTeJE4yTcXEUUYZf97U3\nD+D2\r\n=xd3/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHoLir53tAvznrcj4s8sHl6VLC8fIHzQ7+Wjp+j9bqnWAiAcw8bb968yKH/k9GCsZ/qfVaYMEFcqFLRZC+st8BrR/A=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.5_1553587170995_0.8027781044873412"},"_hasShrinkwrap":false},"1.1.6":{"author":{"name":"UncleMao"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"bundleDependencies":false,"dependencies":{"mysql":"^2.13.0"},"deprecated":false,"description":"该模块旨在[单线程同步操作]或[多线程异步操作]mysql模块,并优雅地避免[回调地狱]. This module is designed for [single-threaded synchronous operation] or [multithreaded asynchronous operation]mysql module and gracefully avoids [callback hell].","homepage":"https://github.com/ModernFarmer/async4mysql#readme","keywords":["mysql","await","async","promise"],"license":"ISC","main":"index.js","name":"async4mysql","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.6","_id":"async4mysql@1.1.6","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-zQX65b+IjcTTxzYKcD10u8QCb/8zvBkB7lQNnPBvO3bOyJLA53+jJiE+/JOa5hXP+0QWBXC6ZRBXADOm1U8eKg==","shasum":"9f53f6b96e3a7c048f0926b7e6daaae936232d29","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.6.tgz","fileCount":4,"unpackedSize":110349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc97FICRA9TVsSAnZWagAAq+YQAJRi1z9ygxDNWOyeO33w\nFO8WxAlhoJsYskDpMwp2kU5yZQ3JG2M/ZFWlQD2mXO+9FTGz430LcDxO29wY\n3AJacrg49mNPcMY38meYsrdEyTpdMG8+WCEORd1bXNBuP8xP7YMTvHFFoau1\nP1ARCEcKcxrIARvtGFh3Sp2PlJvpTz0WyGMXPNyLKR895DGQA7zr45abLKb6\nj0ZZiit1hrnwcT5psg2btM+iDEOZ9f/x90MdFGQxN/TRfl2EqGs/B+8gLcHx\nEETwBDEN0rS8Twtfht2O3BgKF9YMZhmqxuoV0++wqtopZa3b58XTpkjbHFrB\nuFphpgRChii/V0I8lXUqeCsn25omXj5sknGrX4zKRE/sPzYHfml5aFuxZnpl\nCw4jVgUil5D6QBTwKXwAwNrBvxvQ6vhtbx5BjvPfFNzKzRdJz1sz53Es7MyR\nKzOdf4h3Zt5U60gRdhCb5y+8qrMbQMHEqbXpYJlJN6cJTuc9Rzki2cDrqAYN\nGQeo2bd2D50JXj90bg44w3O72ylkC08ot65Ti2gs8f8p7uveH6cK80HatkdK\nBJ4grTr/O9Y94e6PrGxSfcLAv3/GNBBYVx3ZCr9kbV7rs47bPCFMFiSOyhZ7\nUMIcx+/9v53FYcPLQ9DoOX2sdFf9ylx4LWLR0TzPvJ2WPuBL7yUPAB1KAv9D\nxcTM\r\n=AP/Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGH+fGffNw+sk44KAmv+wzyf1NR64JZOvXc5mGW4ReZQIgNNy4plc8V7shj0/UvMQxB2ndLK46J7mLqR4kPid5KHk="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.6_1559736646908_0.3637122153639005"},"_hasShrinkwrap":false},"1.1.7":{"author":{"name":"UncleMao"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"bundleDependencies":false,"dependencies":{"mysql":"^2.13.0"},"deprecated":false,"description":"该模块旨在[单线程同步操作]或[多线程异步操作]mysql模块,并优雅地避免[回调地狱]. This module is designed for [single-threaded synchronous operation] or [multithreaded asynchronous operation]mysql module and gracefully avoids [callback hell].","homepage":"https://github.com/ModernFarmer/async4mysql#readme","keywords":["mysql","await","async","promise"],"license":"ISC","main":"index.js","name":"async4mysql","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.7","_id":"async4mysql@1.1.7","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-g07rx/glfGDnxq3SR5S923R+wjzP6vwtitM3XQ8kwKEhrbWZ4wRqw07Oq8wiyzHjMBh+eBPwb7Mz+R9tOvOchg==","shasum":"6ebe67a6433b80114f72691f04e9aca49f97c15c","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.7.tgz","fileCount":4,"unpackedSize":110351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+Gk6CRA9TVsSAnZWagAAd4kQAIhGKBRfyWTipxRilZnE\n3crxCkntOU2G6YqB49AcMfvmxg5fpp8NIzxfRn/l8+Zf7y+c+6jiaSEZWd7Y\nkLBXJdo+2yWIVjLg5hp39iikyPDmCZTKib/t4Onozf4sTEGHGAjIbxN+YwhQ\njC6BE7ZWJk7STOJ1wUiHIBUmBBGhXGg1fnzmM4qm5muUec02xHuP5tctB7Po\nKtBvQkjWmD1V+w2fPYiok+xhEyJNfUrutJQVbRVZQ3T0aMBp08Hk76VgJ9qN\n2vjzHoeVgmg89jUbxUls45jpwfMZZmbX25X2iAzPqaNAT7INOreSuCEF2qng\nKgXlD+0ammK/n7K8h8T7+v5GMdXaDUW27UawJgRmDvQsjqP89daPXLIqjFmb\nmRsSTnyPvOY8XH0cZsk4XZPX5YWaf6B0a4mPQPRGJOAmbO8y0OkI0ZNI7h89\nDmfNN15q2UeIeMIP9VVRp87UPwDnYnOm7v/WoryL2B46CgMCypOTdwmdvvtx\nBaxztVfc7gmlmb07i87R/PXL69TNQAocTCbVjo+yiF4bq+A9DDmMsoZYSKSQ\nbw6a+ecICW7pqiWoJCjREMlgs7K20UXvlwLfAsOst8y1rBGgX7AHa+kMiljB\njA9/pXEpDPXRqiK5i7m1lgZrm5YqO7er+DBTxVTBIPBx25JYiBX6zCDI62ti\nzXPu\r\n=OH6O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICLTtYl3Nx7x9UeS5RAsOo08mDTjbCdVAmhhzKMPJze0AiACuYnyUhKtTrcXGNUrH0xTU3E0hNT8ftOpvOb5lPpSBA=="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.7_1559783736999_0.6436713201234021"},"_hasShrinkwrap":false},"1.1.8":{"author":{"name":"UncleMao"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"bundleDependencies":false,"dependencies":{"mysql":"^2.13.0"},"deprecated":false,"description":"该模块旨在[单线程同步操作]或[多线程异步操作]mysql模块,并优雅地避免[回调地狱]. This module is designed for [single-threaded synchronous operation] or [multithreaded asynchronous operation]mysql module and gracefully avoids [callback hell].","homepage":"https://github.com/ModernFarmer/async4mysql#readme","keywords":["mysql","await","async","promise"],"license":"ISC","main":"index.js","name":"async4mysql","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.8","_id":"async4mysql@1.1.8","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-+Y4ZNXBUShsZtCmOQz/OoWE6YG1MGDoCeaosMuRf1tOKSVCFQHA7lZ8s47MZr+CUw0vG4qWYo504rUabkxYAQA==","shasum":"ae548f586bdd2f8b3d72e221d15efcff75d8361c","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.8.tgz","fileCount":4,"unpackedSize":110353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+Gn4CRA9TVsSAnZWagAA+JEP/0nWUd7JAeS0tfxT55qj\nWiKcg4bQDsDxXVrxJm+5PV6+sqMT7poz5a993hT85VG0i6pFDGMRwlnonaZc\n3KwtH9sQ6+3LtyBUa+c/43oZ2EZ4+OkrgrIHZC6w/Cq1dPoPZM7c6eg8m5El\neGeDREyg+Et2Ht8UxXqG/C91vmX3G8GkSoBhqbFnUhl5G21bfgWUDtygqT4a\n3G+YzdhCHN4RRNS75WkI/iIH5XB2kAg1VDxn/t6bzkbtN8wTeIgn7xSPTYgC\nthdApd4GJ19fp6xgRGLHG3sudNV+KZvCN6VOLIXgemRU1rzNoOqzrXFAm9YS\nKB3ooLyDNcquOs69x/E/DgQloQe+WnUroHrUrDc0P0okuLsXWvdaUBuandqX\ngpy+EksNo74WDOEF1Avq+/zf6wl/zBUEy5R25qgbnmFbib7SbP+shHlihjqh\nXMWPXrH14ybNnTCziP5P2HeParhk7oXhoi5cKmKNsL/RQEDONrrImoucypRw\nlNLM0L0d0QSB9pIDT8zrNG8NGIE5rYLyWIf/AcItE2F1zrTat2VVnjWcVoLn\n6z4FX4tvJ+bLSSTPKJILff37POuz8cLr+LKFsRaACUvyplTG1w9Ye52Eis5Z\nmQsMHP+/5nZsCclI/WuIeXt7Nl2j/UCk0eMW3h8eyP+0cy6vbqeheznBwpp2\nGL8d\r\n=sGp+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMVXMbhUygUpxhiyqUkQEUhTeZG982bY4SB5s9trVZ2QIhAJYhWmqWpv6ZWVXOi/abBKbId/8Rodm9hDH6VQ8M4H4B"}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.8_1559783927968_0.5186565567252432"},"_hasShrinkwrap":false},"1.1.9":{"author":{"name":"UncleMao"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"bundleDependencies":false,"dependencies":{"mysql":"^2.13.0"},"deprecated":false,"description":"该模块旨在[单线程同步操作]或[多线程异步操作]mysql模块,并优雅地避免[回调地狱]. This module is designed for [single-threaded synchronous operation] or [multithreaded asynchronous operation]mysql module and gracefully avoids [callback hell].","homepage":"https://github.com/ModernFarmer/async4mysql#readme","keywords":["mysql","await","async","promise"],"license":"ISC","main":"index.js","name":"async4mysql","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.9","_id":"async4mysql@1.1.9","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-GLh9NiVrsnykadhcINCW8tuGdFGyiemT8mi3hSjrVg/IDP7YpalovSIwmbzsTgSwRaB800Jxw5DTpeqmHy2rOw==","shasum":"34a9fa732f0ded786abe1665e8f66ce4cbee8642","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.9.tgz","fileCount":4,"unpackedSize":110355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+KozCRA9TVsSAnZWagAA2HUQAJZSBHzdRNy501eQu/qY\nciHw/jr2gT5BT/TQ2eKBs33LnWmYqKH4AREGSTpIHPUhHf8cRmFFK4ulgyOA\npMa+zcmhHgRCUGSPum2a2G/6MM/sbnSnL6pwaC3qZW3dATE+lwf+rLwKl4Tl\nO+awgHxYmQr6POZhJ956bjBP6DoboBngTQooB6/CftjX91FgaTL6+454NLOC\n4ns8NNijIM203azD4F2KS+ZuIvXQWThOKBw44m+76GnmBnPY6/Y35OoeUFtw\njCLfG3f5ZqNPFGaltQ7aAs9YESDkpDWZNyKixYsYkHh3s4CoNGAIKeZnlma1\n8FxOqwvr2JKiipT+KAKvh3dDnVR5W5qvPWTo76TPWbNPa3vaO27ywgyeWR5p\n90Rcms0BG5WWP/P2DtT0nVyNFYmc6d8+GAAE20OURHjCJKxCipgspL3nin+Y\nav9aK0skIgtlSi/k3o1Q7bYXdEJIkx5v+I1xLCtEVHmZ5XV6jmO5tWmvuSNS\n3Nkvq1FzP5vOYz1/tDbMrMaQpFTPJI1GMzSz7PhWibBc2XvRXbaLkysAZrkY\nXmePmY23itbC23smkbzb0ica3yuOqWmu+fHbASqO7XR3ovRPqIu5WI2S7E5d\ntFRGMP0LE7mAJP0spq98e/uk/PuL+tY/wbGSNOP4BuEvxyqAh5yheTEa5Zym\nWjnh\r\n=y//t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDfnIV/6VUwyBCRfMXtXuRhUVQIC9U+w7L9xlukOm906AiEA719ozp1Nx6G/v3ta5QUHOonmRwWqQ+MehkYn1vtzLww="}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.9_1559800370542_0.056230425560839015"},"_hasShrinkwrap":false},"1.1.10":{"author":{"name":"UncleMao"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"},"bundleDependencies":false,"dependencies":{"mysql":"^2.13.0"},"deprecated":false,"description":"同步或异步操作mysql模块,避免回调地狱. Operate mysql modules synchronously or asynchronously, avoiding callback hell","keywords":["async","mysql","promise","node","await"],"license":"ISC","main":"index.js","name":"async4mysql","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.1.10","__npminstall_done":"Wed Oct 09 2019 09:27:45 GMT+0800 (GMT+08:00)","_from":"async4mysql@1.1.9","_resolved":"https://registry.npm.taobao.org/async4mysql/download/async4mysql-1.1.9.tgz","homepage":"https://github.com/ModernFarmer/async4mysql#readme","_id":"async4mysql@1.1.10","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"unclemao","email":"850558682@qq.com"},"dist":{"integrity":"sha512-6Kb0EevyDnz7ue4GNSwoOuC8rqEZblIHZidPQ4/J/Qph9e6Jo4muWCLit158FTKT1dTV/HNs7X8wXz63XtSWvg==","shasum":"94317d7fccb35937df6edff32414bec1308b18d3","tarball":"https://registry.npmjs.org/async4mysql/-/async4mysql-1.1.10.tgz","fileCount":4,"unpackedSize":110357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnTotCRA9TVsSAnZWagAASwcP/0zjVjOt2x+EGx6jqs6a\n92HeV3CAalU0ZSsZQ/4au2WELcvs95ZaY5yXAQ3cKwOFCN3XjbJNVBnrWShn\nhsCOon5RjY+6etgWkVOKdcgjkrlI0Z6GOljWe2uiChayF83QBU0AszEBW0Nn\n+Y+WWFGtg9loxchwQYxqfaf2zIeKLuaSUfvwFChJyJMFbhR5X37cjQR1q4cC\nKHjZq0K0826bxaKs2P9gvj3A3998tMrjGNnY6KGIfebois48X/xmO5Pjd1LU\n3WKy4Y4VctwMMxXeOmHciCRKaSOxGpcGT15Iea9Ans6iskxbpvBTDrUa7Gv7\nfjewIlxbSYAVixltWAcL4PyHOtefmgm9ID05VyID7vscq//WH2MoegQHFWZS\nMHIGmggCtMEqcEz59wygiYc0dT6o4g0LgG4mlMFPZMzBXe9foIjsMhbiie/2\nLukcUBagwcdNx/IHi9eEW0WNuG6Xv2wOXZJtadHZHKrUH8e7OhzQEuTFjh4M\nzXD2fyLVZ84LsrbdBKsTjFirF9HfiCJvH690xem5hKJqJPw52KXWucnS2SLi\nEtM9SxD0tSGenw4nQftnvPNv2KgfqkTIzhJrVVJFFjV3KOk4igDI8nWjTfzA\nJc8BttiwBqMt3s14dAy4OzS/XJorAynly9akZQowCECdk8gVVLIMOoOZEBFx\noptt\r\n=6azr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUAoIWeOnoNQHPnxV9bRNIw+w7dvQy4D1CR0q8XbR7vgIhAM0DlMTJDk9RrcZ1QmtgHwlzQURlyLPk2u5d0FthcOCv"}]},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async4mysql_1.1.10_1570585132567_0.2856926631566157"},"_hasShrinkwrap":false}},"time":{"created":"2019-01-17T04:28:26.479Z","1.0.0":"2019-01-17T04:28:26.610Z","modified":"2022-04-11T15:36:14.456Z","1.0.1":"2019-01-22T08:27:03.747Z","1.0.2":"2019-01-22T09:27:32.899Z","1.0.3":"2019-01-23T01:26:42.375Z","1.0.4":"2019-01-23T01:50:13.666Z","1.0.5":"2019-01-23T01:55:25.466Z","1.0.6":"2019-01-23T09:37:59.844Z","1.0.7":"2019-01-23T09:45:32.920Z","1.0.8":"2019-01-23T09:48:19.908Z","1.0.9":"2019-01-23T09:50:14.354Z","1.0.10":"2019-01-23T09:57:52.383Z","1.0.11":"2019-01-23T10:00:07.212Z","1.0.12":"2019-01-23T10:01:42.546Z","1.0.13":"2019-01-23T10:03:19.965Z","1.0.14":"2019-01-23T10:11:36.233Z","1.0.15":"2019-01-23T10:15:38.371Z","1.0.16":"2019-01-23T10:17:42.114Z","1.0.17":"2019-01-23T10:22:30.599Z","1.0.18":"2019-01-23T13:15:53.423Z","1.0.19":"2019-01-23T13:52:56.463Z","1.0.20":"2019-01-23T14:20:40.779Z","1.0.21":"2019-01-23T14:33:50.951Z","1.0.22":"2019-01-23T14:41:20.006Z","1.0.23":"2019-01-24T10:06:12.130Z","1.1.0":"2019-01-30T03:30:47.281Z","1.1.1":"2019-01-31T01:14:25.467Z","1.1.2":"2019-02-04T03:05:37.236Z","1.1.3":"2019-02-04T03:28:18.881Z","1.1.4":"2019-02-14T07:04:42.755Z","1.1.5":"2019-03-26T07:59:31.149Z","1.1.6":"2019-06-05T12:10:47.057Z","1.1.7":"2019-06-06T01:15:37.123Z","1.1.8":"2019-06-06T01:18:48.100Z","1.1.9":"2019-06-06T05:52:50.710Z","1.1.10":"2019-10-09T01:38:52.666Z"},"maintainers":[{"name":"unclemao","email":"850558682@qq.com"}],"description":"同步或异步操作mysql模块,避免回调地狱. Operate mysql modules synchronously or asynchronously, avoiding callback hell","keywords":["async","mysql","promise","node","await"],"author":{"name":"UncleMao"},"license":"ISC","readme":"*本模块是将node-mysql模块进行简单封装, 旨在更加简单直观地进行同步操作异步调用或异步操作异步调用, 本模块的相关参数设定完全遵循node-mysql模块的相关设定.*\r\n　<br><br><br>\r\n*This module is a simple encapsulation of node-mysql module, aiming to make asynchronous invocation of synchronous operation or asynchronous operation and asynchronous invocation more simple and intuitive. The parameter setting of this module fully follows the relevant setting of node-mysql module.*\r\n**The English API is at the back of the page!**<br><br><br>\r\n**下载:**\r\n\r\n```javascript\r\nnpm install async4mysql -S\r\n```\r\n\r\n**引入:**\r\n\r\n```javascript\r\nconst async4mysql = require('async4mysql');      //引入async4mysql模块\r\n\r\nconst db = new async4mysql(option);      //创建模块实例对象\r\n```\r\n* `new async4mysql对象`会根据 `参数类型` 来创建一个 **单一连接池** 或者 **连接池集群**\r\n\r\n**使用:**\r\n\r\n**　单一连接池 \\-\\>**\r\n\r\n```javascript\r\n当 new async4mysql(option) 的 option参数 是一个json, 那么 new async4mysql(option) \r\n将会创建一个 单一连接池(由mysql模块的.createPool()方法创建的只包含一个连接的连接池).\r\n\r\n参数格式:\r\n  {\r\n    host:'localhost',           // 数据库服务器名称\r\n    user:'root',                // 数据库服务器用户名\r\n    port:3306,                  // 数据库服务器接口\r\n    password:'123456',          // 数据库服务器密码\r\n    database:'damo'             // 要连接的数据库名称\r\n  }\r\n```\r\n\\>\\>\\>\\>\\>　当**db对象**是一个**单一连接池**时, **db对象** 可以使用以下6个方法:<br>\r\n> * `.select()`,　`.delete()`,　`.update()`,　`.insert()`,　`.entire()`,　`.query()`\r\n\r\n**1:　.select()方法**\r\n\r\n**.select()　　同步执行指定的mysql 查询语句 ( SELECT语句 )**\r\n\r\n　参数 :<br>\r\n　　**.select**( *sql*,　*arr* )<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option = {      //参数option是一个json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);      /* 由于参数option是一个json, async4mysql\r\n　　　　　　　　　　　　　　　　　　　　　实例将会创建一个 单一连接池 */\r\n\r\nlet sql_1 = `SELECT * FROM table`;\r\n\r\ndb.select(sql_1).then(data => {      /*select()方法的.then()方法的回调函数参数\r\n　　　　　　　　　　　　　　　　　　　data即为sql_1语句的查询结果, 是一个 数组*/\r\n  console.log(data);      // [{id:'123', value1:'aaa', value2:'bbb'}, {id:'456', value1:'ccc', value2:'ddd'}, ......]　\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\ndb.select(sql_2, ['table', 'myTablesId']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT * FROM table`;\r\n\r\n  let result_1 = await db.select(sql_1).catch(err => {     //在async函数中使用.select方法, 将直接返回sql_1语句的查询结果result_1　　\r\n    console.log(err)\r\n  });\r\n    // ***await操作符可以同步执行异步async函数, 因此只有在result_1返回完毕之后才会执行后面的一系列操作***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\n  let result_2 = await db.select(sql_2, ['table', 'myTablesId']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**2:　.delete()方法**\r\n\r\n**.delete()　　同步执行指定的mysql 删除语句 ( DELETE语句 )**\r\n\r\n　参数 :<br>\r\n　　**.delete**( *sql*,　*arr* )<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option = {      //参数option是一个json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);      /* 由于参数option是一个json, async4mysql\r\n　　　　　　　　　　　　　　　　　　　　　　实例将会创建一个 单一连接池 */\r\n\r\nlet sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\ndb.delete(sql_1).then(data => {  // .delete()方法的.then()方法的回调函数参数data是sql_1语句的删除结果描述, 是一个 字符串　\r\n  console.log(data);      //  `--->  *async4mysql*模块: DELETE FROM table WHERE id='123456'   --->  语句已执行!`　\r\n　　　　　　　　　　　　　// ***一般情况下不需要.delete()方法的返回值\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\ndb.delete(sql_2, ['table', '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\n  await db.delete(sql_1).catch(err => {     //在async函数中使用.delete方法, 无需db对象的返回值\r\n    console.log(err)\r\n  });\r\n    // ***await操作符可以同步执行异步async函数, 因此只有在result_1返回完毕之后才会执行后面的一系列操作***　\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\n  await db.delete(sql_2, ['table', '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**3:　.update()方法**\r\n\r\n**.update()　　同步执行指定的mysql 更新语句 ( UPDATE语句 )**\r\n\r\n　参数 :<br>\r\n　　**.update**( *sql*,　*arr* )<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option = {      //参数option是一个json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);      /* 由于参数option是一个json, async4mysql\r\n　　　　　　　　　　　　　　　　　　　　　　实例将会创建一个 单一连接池 */\r\n\r\nlet sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\ndb.update(sql_1).then(data => {  // .update()方法的.then()方法的回调函数参数data是sql_1语句的更新结果描述, 是一个 字符串\r\n  console.log(data);      //  `--->  *async4mysql*模块: UPDATE table SET value1='aaa' WHERE id='123456'   --->  语句已执行!`　　\r\n　　　　　　　　　　　　　// ***一般情况下不需要.update()方法的返回值\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `UPDATE ?? SET ? WHERE id = ?`;\r\n\r\ndb.update(sql_2, ['table', {value1:'value1', value2:'value2'}, '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\n  let result_1 = await db.update(sql_1).catch(err => {     //在async函数中使用.update方法, 无需db对象的返回值　\r\n    console.log(err)\r\n  });\r\n    // ***await操作符可以同步执行异步async函数, 因此只有在result_1返回完毕之后才会执行后面的一系列操作***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `UPDATE ?? SET ? WHERE id = ?`;\r\n\r\n  await db.update(sql_2, ['table', {value1:'value1', value2:'value2'}, '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**4:　.insert()方法**\r\n\r\n**.insert()　　同步执行指定的mysql 插入语句 ( INSERT语句 )**\r\n\r\n　参数 :<br>\r\n　　**.insert**( *sql*,　*arr* )<br><br>\r\n　　如果 *sql* 的类型是 *字符串* :<br>\r\n　　　`sql:　要执行的mysql语句　　　　　　　　必须`<br>\r\n　　　`arr:　防注入操作存放数据的数组　　　　可选`<br><br>\r\n　　如果 *sql* 的类型是 *json* :<br>\r\n　　　`sql:　要执行的mysql语句的 插入内容键值对(json)　　必须`<br>\r\n　　　`arr:　需要操作的数据表的 表名字符串　　　　　　　　必须`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option = {                        //参数option是一个json\r\n  host:'localhost',\r\n  user:'root',\r\n  port:3306,\r\n  password:'123456',\r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);     //*由于参数option是一个json, async4mysql实例将会创建一个 单一连接池\r\n\r\nlet sql_1 = `INSERT INTO table SET id = 'aaa',value1 = 'bbb'`;\r\n\r\ndb.insert(sql_1).then(data => {       //.insert()方法的.then()方法的回调函数参数data是sql_1语句的插入结果描述, 是一个 字符串　\r\n  console.log(data);        //  `--->  *async4mysql*模块: INSERT INTO table SET id='aaa',value1='bbb'   --->  语句已执行!`　\r\n　　　　　　　　　　　　　　// ***一般情况下不需要.insert()方法的返回值\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `INSERT INTO ?? SET ?`;\r\n\r\ndb.insert(sql_2, ['table', {id:'aaa', value1:'bbb'}]).then(data=>{\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n\r\nlet json = {id:'eee', value:'fff'};\r\n\r\ndb.insert(json, 'table').then(data => {    // 相当于db.insert(`INSERT INTO ?? SET ?`, ['table', json]).then( ......　\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res)=>{\r\n  let sql_1 = `INSERT INTO table SET id = 'aaa',value1 = 'bbb'`;\r\n\r\n  await db.insert(sql_1).catch(err=>{     //在async函数中使用.insert方法, 将直接执行插入语句, 一般不需要它的返回值　\r\n    console.log(err);\r\n  });\r\n    //*await操作符可以同步执行异步async函数, 因此只有在sql_1执行完毕之后才会执行后面的一系列操作\r\n\r\n  console.log(db.sql);      /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `INSERT INTO ?? SET ?`;\r\n\r\n  await db.insert(sql_2, ['table', {id:'aaa', value1:'bbb'}]).catch(err=>{\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  let json = {id:'eee', value:'fff'};\r\n\r\n  await db.insert(json, 'table').catch(err => {    //相当于db.insert(`INSERT INTO ?? SET ?`, ['table', json]).catch( ......　\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**5:　.entire()方法**\r\n\r\n**.entire()　　* 可以异步执行 多个mysql操作, 并保证所有 mysql操作 都执行完毕后, 才返回相关数据**\r\n\r\n*参数*:<br>\r\n```javascript\r\n.entire(\r\n  {sql : '...',  values : [] },\r\n  {sql : '...',  values : [] },\r\n    ......\r\n)\r\n```\r\n* .entire()方法的*参数类型*必须是 **json**, 可以有 **大于1的任意** 个 *参数*\r\n```javascript\r\n{\r\n  sql:  要执行的mysql语句 或者 INSERT语句的键值对        (必须)\r\n  values:  防注入操作存放数据的数组 [可选] 或者 INSERT操作的表名称字符串 (必须)\r\n}\r\n```\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option = {                    // 参数option是一个json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);     // *由于参数option是一个json, async4mysql实例将会创建一个 单一连接池　\r\n\r\nlet P1 = {\r\n  sql:`SELECT * FROM table WHERE value = 'value1'`,\r\n  // values:[]            // *当不需要进行防注入操作时, values属性可以省略\r\n};\r\n\r\nlet P2 = {\r\n  sql:`INSERT INTO ?? SET id = ?, value = ?`,\r\n  values:['table', 'id', 'value']\r\n};\r\n\r\nlet P3 = {\r\n  sql:{id:'_id', value:'_value'},      // *** 当sql属性的类型为json时, 即代表该操作**一定**为 INSERT操作\r\n  values:'table'      // *** 当sql属性的类型为json时, values属性不能省略, 且它的类型必须是 字符串 , 它表示INSERT操作的表名称　\r\n};\r\n\r\n/* P3写法相当于:\r\n  let P3 = {\r\n    sql:`INSERT INTO ?? SET ?`,\r\n    values: ['table', {id:'_id', value:'_value'}]\r\n  }; */\r\n\r\ndb.entire(P1, P2, P3).then(data => {       /* .insert()方法的.then()方法的回调函数参数data是一个 数组,\r\n　　　　　　　　　　　　　　　　　　　　　　　　该数组会在P1、P2、P3都执行完毕后才会被返回,\r\n　　　　　　　　　　　　　　　　　　　　　　　　该数组按照参数 P1, P2, P3的顺序 装有所有 mysql语句 的执行结果 */\r\n　　　　　　// *** .entire()方法中, P1, P2, P3是异步执行的, 也就是说P1, P2, P3是同时执行的, 无需等P1完成后再执行P2和P3　\r\n  console.log(data);    // [[{id:'aaa', value:'bbb'}], '...语句用已执行 !', '...语句用已执行 !']\r\n　　　　　　// *** 只有SELECT相关操作的结果类型是数组, DELETE、UPDATE和INSERT操作的结果都是字符串\r\n  console.log(db.sql);  /* *** .entire()方法的 db.sql属性 代表包含本次操作的所有 mysql语句 的 数组;\r\n　　　　　　　　　　　　　　　*!* 如果在执行过程中出现错误, 那么db.sql属性将是 db实例抛出的错误信息\r\n　　　　　　　　　　　　　　　db.sql属性的顺序与参数 P1, P2, P3的顺序完全一致;\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);  // 如果在执行过程中出现错误, 此时的db.sql属性是 db实例抛出的错误信息\r\n   //错误信息格式: * _______________async4mysql模块 .entire()方法 错误* sql语句执行出错, ---> sql: (这里是出错的sql语句)}　\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res)=>{\r\n  let P1 = {\r\n    sql:`SELECT * FROM table WHERE value = 'value1'`,\r\n    // values:[]            // *当不需要进行防注入操作时, values属性可以省略\r\n  };\r\n\r\n  let P2 = {\r\n    sql:`INSERT INTO ?? SET id = ?, value = ?`,\r\n    values:['table', 'id', 'value']\r\n  };\r\n\r\n  let P3 = {\r\n    sql:{id:'_id', value:'_value'},       // *** 当sql属性的类型为json时, 即代表该操作为 INSERT操作\r\n    values:'table'                  // *** 当sql属性的类型为json时, values属性不能省略, 且它的类型必须是 字符串 , 它表示INSERT操作的表名称　\r\n  };\r\n\r\n  /* P3写法相当于:\r\n    let P3 = {\r\n      sql:`INSERT INTO ?? SET ?`,\r\n      values: ['table', {id:'_id', value:'_value'}]\r\n    }; */\r\n\r\n  let result = await db.entire(P1, P2, P3).catch(err => {  /* 当P1、P2、P3都执行完毕后, 返回result, 它是一个数组\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　它按照参数P1, P2, P3的顺序 装有所有 mysql语句 的执行结果 */\r\n    console.log(err);\r\n    console.log(db.sql);  // 如果在执行过程中出现错误, 此时的db.sql属性是 db实例抛出的错误信息\r\n      //错误信息格式: * _______________async4mysql模块 .entire()方法 错误* sql语句执行出错, ---> sql: (这里是出错的sql语句)}\r\n      // todo ...\r\n    });\r\n\r\n　　　//*await操作符可以同步执行异步async函数, 因此只有在.entire()方法执行完毕之后才会执行后面的一系列操作\r\n\r\n    console.log(db.sql);  /* *** .entire()方法的 db.sql属性 代表包含本次操作的所有 mysql语句的数组;\r\n　　　　　　　　　　　　　　*!* 如果在执行过程中出现错误, 那么db.sql属性将是 db实例抛出的错误信息\r\n　　　　　　　　　　　　　　db.sql属性的顺序与参数 P1, P2, P3的顺序完全一致;\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n    // todo ...\r\n\r\n    res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**6:　.query()方法**\r\n\r\n**.query()　　同步执行指定的 *所有类型mysql语句* ( 一般用于执行*除了* 增、删、改、查 外的mysql语句 )**\r\n\r\n　参数 :<br>\r\n　　**.query**( *sql*,　*arr* )<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option = {                    //参数option是一个json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);     //*由于参数option是一个json, async4mysql实例将会创建一个 单一连接池\r\n\r\nlet sql_1 = `SELECT COUNT(table_name) AS total FROM information_schema.tables WHERE table_schema = '库名' AND table_name='表名称'`;　\r\n\r\ndb.query(sql_1).then(data => {\r\n  console.log(data);\r\n  console.log(db.sql);\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n\r\nlet sql_2 = `CREATE TABLE damo (\r\n　　　　　　id varchar(11) DEFAULT NULL,\r\n　　　　　　_varchar varchar(100) DEFAULT NULL,\r\n　　　　　　_int int(2) DEFAULT NULL\r\n　　　　　　) ENGINE=InnoDB DEFAULT CHARSET=utf8`;\r\n\r\ndb.query(sql_2).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT COUNT(table_name) AS total FROM information_schema.tables WHERE table_schema = '库名' AND table_name='表名称'`;　\r\n\r\n  let result = await db.query(sql_1).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result);\r\n    //*await操作符可以同步执行异步async函数, 因此只有在sql_1执行完毕之后才会执行后面的一系列操作\r\n\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `CREATE TABLE damo (\r\n　　　　　　　id varchar(11) DEFAULT NULL,\r\n　　　　　　　_varchar varchar(100) DEFAULT NULL,\r\n　　　　　　　_int int(2) DEFAULT NULL\r\n　　　　　　　) ENGINE=InnoDB DEFAULT CHARSET=utf8`;\r\n\r\n  await db.query(sql_2).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**\\-\\-\\-连接池集群\\-\\-\\-**\r\n\r\n```javascript\r\n当 new async4mysql(option) 的 option参数 是一个Array,\r\n那么 new async4mysql(option) 则会创建一个 连接池集群 (由mysql模块\r\n的.createPoolCluster()方法创建的包含一个或多个连接的连接池).\r\n\r\n参数格式:\r\n  [\r\n    {\r\n      connectName:'CONNECT_1',    // 连接名称\r\n      option:{\r\n        host:'localhost',            // 数据库服务器名称\r\n        user:'root_1',               // 数据库服务器用户名\r\n        port:3306,                   // 数据库服务器接口\r\n        password:'pwd_1',            // 数据库服务器密码\r\n        database:'damo_1'            // 要连接的数据库名称\r\n      }\r\n    },\r\n    {\r\n      connectName:'CONNECT_2',    // 连接名称\r\n      option:{\r\n        host:'localhost',            // 数据库服务器名称\r\n        user:'root_1',               // 数据库服务器用户名\r\n        port:3306,                   // 数据库服务器接口\r\n        password:'pwd_2',            // 数据库服务器密码\r\n        database:'damo_2'            // 要连接的数据库名称\r\n      }\r\n    },\r\n    ......\r\n  ]\r\n```\r\n**此时, new async4mysql(option)实例 会根据 *参数数组* 中的每一个 *值(json)* 的 `json.option` 来创建相应连接名为 `json.connectName` 的连接**　<br><br>\r\n**连接池集群 可以在 *同一个实例中* 对 *不同* 的 `mysql数据库` 进行操作!!! (单一连接池*只能*对 *同一个mysql数据库* 进行操作)**　<br><br>\r\n\\>\\>\\>\\>\\>　当**db对象**是一个连接池集群时, **db对象**可以使用以下6个方法:<br>\r\n> * `.$select()`,　`.$delete()`,　`.$update()`,　`.$insert()`,　`.$entire()`,　`.$query()`\r\n\r\n**1:　.$select()方法**\r\n\r\n**.$select()　　同步执行指定的mysql 查询语句 ( SELECT语句 )**\r\n\r\n　参数 :<br>\r\n　　**.$select**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　连接名　　　　　　　　　必须`<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*由于参数option是一个Array, async4mysql实例将会创建一个 连接池集群\r\n  // 根据参数opt, 这个连接池集群里面将包含2个连接, 他们的名称分别是: 'CONNECT_1' 和 'CONNECT_2', 可以连接到不同的数据库进行操作　\r\n\r\n\r\nlet sql_1 = `SELECT * FROM table`;\r\n\r\ndb.$select('CONNECT_1', sql_1).then(data => {      /*select()方法的.then()方法的回调函数参数\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　data即为sql_1语句的查询结果, 是一个 数组*/\r\n  console.log(data);      // [{id:'123', value1:'aaa', value2:'bbb'}, {id:'456', value1:'ccc', value2:'ddd'}, ......]\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\ndb.$select('CONNECT_2', sql_2, ['table', 'myTablesId']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT * FROM table`;\r\n\r\n  let result_1 = await db.$select('CONNECT_1', sql_1).catch(err => {     //在async函数中使用.$select方法, 将直接返回sql_1语句的查询结果result_1　\r\n    console.log(err)\r\n  });\r\n    // ***await操作符可以同步执行异步async函数, 因此只有在result_1返回完毕之后才会执行后面的一系列操作***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\n  let result_2 = await db.$select('CONNECT_2', sql_2, ['table', 'myTablesId']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**2:　.$delete()方法**\r\n\r\n**.$delete()　　同步执行指定的mysql 删除语句 ( DELETE语句 )**\r\n\r\n　参数 :<br>\r\n　　**.$delete**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　连接名　　　　　　　　　必须`<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*由于参数option是一个Array, async4mysql实例将会创建一个 连接池集群\r\n  // 根据参数opt, 这个连接池集群里面将包含2个连接, 他们的名称分别是: 'CONNECT_1' 和 'CONNECT_2', 可以连接到不同的数据库进行操作\r\n\r\n\r\nlet sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\ndb.$delete(CONNECT_1, sql_1).then(data => {  // .$delete()方法的.then()方法的回调函数参数data是sql_1语句的删除结果描述, 是一个 字符串　\r\n  console.log(data);      //  `--->  *async4mysql*模块: DELETE FROM table WHERE id='123456'   --->  语句已执行!`\r\n　　　　　　　　　　　　　// ***一般情况下不需要.$delete()方法的返回值\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\ndb.$delete(CONNECT_2, sql_2, ['table', '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\n  await db.$delete(CONNECT_1, sql_1).catch(err => {     //在async函数中使用.$delete方法, 无需db对象的返回值　\r\n    console.log(err)\r\n  });\r\n    // ***await操作符可以同步执行异步async函数, 因此只有在result_1返回完毕之后才会执行后面的一系列操作***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\n  await db.$delete(CONNECT_2, sql_2, ['table', '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**3:　.$update()方法**\r\n\r\n**.$update()　　同步执行指定的mysql 更新语句 ( UPDATE语句 )**\r\n\r\n　参数:<br>\r\n　　**.$update**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　连接名　　　　　　　　　必须`<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*由于参数option是一个Array, async4mysql实例将会创建一个 连接池集群\r\n  // 根据参数opt, 这个连接池集群里面将包含2个连接, 他们的名称分别是: 'CONNECT_1' 和 'CONNECT_2', 可以连接到不同的数据库进行操作\r\n\r\n\r\nlet sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\ndb.$update('CONNECT_1', sql_1).then(data => {  // .$update()方法的.then()方法的回调函数参数data是sql_1语句的更新结果描述, 是一个 字符串　\r\n  console.log(data);      //  `--->  *async4mysql*模块: UPDATE table SET value1='aaa' WHERE id='123456'   --->  语句已执行!`　\r\n　　　　　　　　　　　　　// ***一般情况下不需要.$update()方法的返回值\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `UPDATE ?? SET ? WHERE id = ?`;\r\n\r\ndb.$update('CONNECT_2', sql_2, ['table', {value1:'value1', value2:'value2'}, '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\n  let result_1 = await db.$update('CONNECT_1', sql_1).catch(err => {     //在async函数中使用.$update方法, 无需db对象的返回值　\r\n    console.log(err)\r\n  });\r\n    // ***await操作符可以同步执行异步async函数, 因此只有在result_1返回完毕之后才会执行后面的一系列操作***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `UPDATE ?? SET ? WHERE id = ?`;\r\n\r\n  await db.$update('CONNECT_2', sql_2, ['table', {value1:'value1', value2:'value2'}, '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**4:　.$insert()方法**\r\n\r\n**.$insert()　　同步执行指定的mysql 插入语句 ( INSERT语句 )**\r\n\r\n　参数 :<br>\r\n　　**.$insert**( *connectName*,　*sql*,　*arr* )<br><br>\r\n　　如果 *sql* 的类型是 *字符串* :<br>\r\n　　　`connectName:　连接名　　　　　　　　　必须`<br>\r\n　　　`sql:　要执行的mysql语句　　　　　　　必须`<br>\r\n　　　`arr:　防注入操作存放数据的数组　　　　可选`<br><br>\r\n　　如果 *sql* 的类型是 *json* :<br>\r\n　　　`connectName:　连接名　　　　　　　　　　　　　　　必须`<br>\r\n　　　`sql:　要执行的mysql语句的 插入内容键值对(json)　　必须`<br>\r\n　　　`arr:　需要操作的数据表的 表名字符串　　　　　　　　必须`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*由于参数option是一个Array, async4mysql实例将会创建一个 连接池集群\r\n  // 根据参数opt, 这个连接池集群里面将包含2个连接, 他们的名称分别是: 'CONNECT_1' 和 'CONNECT_2', 可以连接到不同的数据库进行操作\r\n\r\n\r\nlet sql_1 = `INSERT INTO table SET id = 'aaa',value1 = 'bbb'`;\r\n\r\ndb.$insert('CONNECT_1', sql_1).then(data => {       //.$insert()方法的.then()方法的回调函数参数data是sql_1语句的插入结果描述, 是一个 字符串　\r\n  console.log(data);        //  `--->  *async4mysql*模块: INSERT INTO table SET id='aaa',value1='bbb'   --->  语句已执行!`\r\n　　　　　　　　　　　　　　// ***一般情况下不需要.$insert()方法的返回值\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `INSERT INTO ?? SET ?`;\r\n\r\ndb.$insert('CONNECT_2', sql_2, ['table', {id:'aaa', value1:'bbb'}]).then(data=>{\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n\r\nlet json = {id:'eee', value:'fff'};\r\n\r\ndb.$insert('CONNECT_1', json, 'table').then(data => {    // 相当于db.$insert(`INSERT INTO ?? SET ?`, ['table', json]).then( ......　\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res)=>{\r\n  let sql_1 = `INSERT INTO table SET id = 'aaa',value1 = 'bbb'`;\r\n\r\n  await db.$insert('CONNECT_1', sql_1).catch(err=>{     //在async函数中使用.$insert方法, 将直接执行插入语句, 一般不需要它的返回值　\r\n    console.log(err);\r\n  });\r\n    //*await操作符可以同步执行异步async函数, 因此只有在sql_1执行完毕之后才会执行后面的一系列操作\r\n\r\n  console.log(db.sql);      /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `INSERT INTO ?? SET ?`;\r\n\r\n  await db.$insert('CONNECT_2', sql_2, ['table', {id:'aaa', value1:'bbb'}]).catch(err=>{\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  let json = {id:'eee', value:'fff'};\r\n\r\n  await db.$insert('CONNECT_1', json, 'table').catch(err => {    //相当于db.$insert(`INSERT INTO ?? SET ?`, ['table', json]).catch( ......　　\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**5:　.$entire()方法**\r\n\r\n**.$entire()　　* 可以异步执行 多个mysql操作, 并保证所有 mysql操作 都执行完毕后, 才返回相关数据**\r\n\r\n*参数*:<br>\r\n```javascript\r\n.$entire(\r\n  {connectName : '...',  sql : '...',  values : [] },\r\n  {connectName : '...',  sql : '...',  values : [] },\r\n    ......\r\n)\r\n```\r\n* .$entire()方法的*参数类型*必须是 **json**, 可以有 **大于1的任意** 个 *参数*\r\n```javascript\r\n{\r\n  connectName:  连接名           (必须)\r\n  sql:  要执行的mysql语句 或者 INSERT语句的键值对        (必须)\r\n  values:  防注入操作存放数据的数组 [可选] 或者 INSERT操作的表名称字符串 (必须)\r\n}\r\n```\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*由于参数option是一个Array, async4mysql实例将会创建一个 连接池集群\r\n  // 根据参数opt, 这个连接池集群里面将包含2个连接, 他们的名称分别是: 'CONNECT_1' 和 'CONNECT_2', 可以连接到不同的数据库进行操作　\r\n\r\n\r\nlet P1 = {\r\n  connectName:'CONNECT_1',\r\n  sql:`SELECT * FROM table WHERE value = 'value1'`,\r\n  // values:[]            // *当不需要进行防注入操作时, values属性可以省略\r\n};\r\n\r\nlet P2 = {\r\n  connectName:'CONNECT_2',\r\n  sql:`INSERT INTO ?? SET id = ?, value = ?`,\r\n  values:['table', 'id', 'value']\r\n};\r\n\r\nlet P3 = {\r\n  connectName:'CONNECT_1',\r\n  sql:{id:'_id', value:'_value'},      // *** 当sql属性的类型为json时, 即代表该操作**一定**为 INSERT操作\r\n  values:'table'      // *** 当sql属性的类型为json时, values属性不能省略, 且它的类型必须是 字符串 , 它表示INSERT操作的表名称　\r\n};\r\n\r\n/* P3写法相当于:\r\n  let P3 = {\r\n    connectName:'CONNECT_1',\r\n    sql:`INSERT INTO ?? SET ?`,\r\n    values: ['table', {id:'_id', value:'_value'}]\r\n  }; */\r\n\r\ndb.$entire(P1, P2, P3).then(data => {       /* .$insert()方法的.then()方法的回调函数参数data是一个 数组,\r\n　　　　　　　　　　　　　　　　　　　　　　　　该数组会在P1、P2、P3都执行完毕后才会被返回,\r\n　　　　　　　　　　　　　　　　　　　　　　　　该数组按照参数 P1, P2, P3的顺序 装有所有 mysql语句 的执行结果 */\r\n　　　　　　　　　　// *** .$entire()方法中, P1, P2, P3是异步执行的, 也就是说P1, P2, P3是同时执行的, 无需等P1完成后再执行P2和P3　　\r\n  console.log(data);    // [[{id:'aaa', value:'bbb'}], '...语句用已执行 !', '...语句用已执行 !']\r\n　　　　　　　　　　　　// *** 只有SELECT相关操作的结果类型是数组, DELETE、UPDATE和INSERT操作的结果都是字符串\r\n  console.log(db.sql);  /* *** .$entire()方法的 db.sql属性 代表包含本次操作的所有 mysql语句 的 数组;\r\n　　　　　　　　　　　　　　　　　*!* 如果在执行过程中出现错误, 那么db.sql属性将是 db实例抛出的错误信息\r\n　　　　　　　　　　　　　　　　　db.sql属性的顺序与参数 P1, P2, P3的顺序完全一致;\r\n　　　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);  // 如果在执行过程中出现错误, 此时的db.sql属性是 db实例抛出的错误信息\r\n   //错误信息格式: * _______________async4mysql模块 .$entire()方法 错误* sql语句执行出错, ---> sql: (这里是出错的sql语句)}\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res)=>{\r\n  let P1 = {\r\n    sql:`SELECT * FROM table WHERE value = 'value1'`,\r\n    // values:[]            // *当不需要进行防注入操作时, values属性可以省略\r\n  };\r\n\r\n  let P2 = {\r\n    sql:`INSERT INTO ?? SET id = ?, value = ?`,\r\n    values:['table', 'id', 'value']\r\n  };\r\n\r\n  let P3 = {\r\n    sql:{id:'_id', value:'_value'},       // *** 当sql属性的类型为json时, 即代表该操作为 INSERT操作\r\n    values:'table'                  // *** 当sql属性的类型为json时, values属性不能省略, 且它的类型必须是 字符串 , 它表示INSERT操作的表名称　\r\n  };\r\n\r\n  /* P3写法相当于:\r\n    let P3 = {\r\n      sql:`INSERT INTO ?? SET ?`,\r\n      values: ['table', {id:'_id', value:'_value'}]\r\n    }; */\r\n\r\n  let result = await db.$entire(P1, P2, P3).catch(err => {  /* 当P1、P2、P3都执行完毕后, 返回result, 它是一个数组\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　它按照参数P1, P2, P3的顺序 装有所有 mysql语句 的执行结果 */\r\n    console.log(err);\r\n    console.log(db.sql);  // 如果在执行过程中出现错误, 此时的db.sql属性是 db实例抛出的错误信息\r\n        //错误信息格式: * _______________async4mysql模块 .$entire()方法 错误* sql语句执行出错, ---> sql: (这里是出错的sql语句)}\r\n      // todo ...\r\n    });\r\n\r\n      //*await操作符可以同步执行异步async函数, 因此只有在.$entire()方法执行完毕之后才会执行后面的一系列操作\r\n\r\n    console.log(db.sql);  /* *** .$entire()方法的 db.sql属性 代表包含本次操作的所有 mysql语句的数组;\r\n　　　　　　　　　　　　　　　*!* 如果在执行过程中出现错误, 那么db.sql属性将是 db实例抛出的错误信息\r\n　　　　　　　　　　　　　　　db.sql属性的顺序与参数 P1, P2, P3的顺序完全一致;\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n    // todo ...\r\n\r\n    res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**6:　.$query()方法**\r\n\r\n**.$query()　　同步执行指定的 *所有类型mysql语句* ( 一般用于执行*除了* 增、删、改、查 外的mysql语句 )**\r\n\r\n　参数:<br>\r\n　　**.$query**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　连接名　　　　　　　　　必须`<br>\r\n　　`sql:　要执行的mysql语句　　　　　　　必须`<br>\r\n　　`arr:　防注入操作存放数据的数组　　　　可选`<br>\r\n\r\n**基础案例 :**\r\n```javascript\r\n******在非async函数中使用: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*由于参数option是一个Array, async4mysql实例将会创建一个 连接池集群\r\n  // 根据参数opt, 这个连接池集群里面将包含2个连接, 他们的名称分别是: 'CONNECT_1' 和 'CONNECT_2', 可以连接到不同的数据库进行操作\r\n\r\n\r\nlet sql_1 = `SELECT COUNT(table_name) AS total FROM information_schema.tables WHERE table_schema = '库名' AND table_name='表名称'`;　\r\n\r\ndb.$query('CONNECT_1', sql_1).then(data => {\r\n  console.log(data);\r\n  console.log(db.sql);\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n\r\nlet sql_2 = `CREATE TABLE damo (\r\n　　　　　　id varchar(11) DEFAULT NULL,\r\n　　　　　　_varchar varchar(100) DEFAULT NULL,\r\n　　　　　　_int int(2) DEFAULT NULL\r\n　　　　　　) ENGINE=InnoDB DEFAULT CHARSET=utf8`;\r\n\r\ndb.$query('CONNECT_2', sql_2).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******在async函数中使用: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT COUNT(table_name) AS total FROM information_schema.tables WHERE table_schema = '库名' AND table_name='表名称'`;　\r\n\r\n  let result = await db.$query('CONNECT_1', sql_1).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result);\r\n    //*await操作符可以同步执行异步async函数, 因此只有在sql_1执行完毕之后才会执行后面的一系列操作\r\n\r\n  console.log(db.sql);  /* *** new async4mysql()实例(即db对象)的.sql属性代表本次操作的 mysql语句\r\n　　　　　　　　　　　　　　　db.sql 属性在每次执行 db对象的方法 后都会改变 */\r\n\r\n  let sql_2 = `CREATE TABLE damo (\r\n　　　　　　　id varchar(11) DEFAULT NULL,\r\n　　　　　　　_varchar varchar(100) DEFAULT NULL,\r\n　　　　　　　_int int(2) DEFAULT NULL\r\n　　　　　　　) ENGINE=InnoDB DEFAULT CHARSET=utf8`;\r\n\r\n  await db.$query('CONNECT_2', sql_2).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n\r\n***历史版本信息***\r\n```javascript\r\n　版本:　　　　　　　　　1.0.0\r\n\r\n　发布时间:　　　　　　　2019-1-17\r\n\r\n　版本说明:　　　　　　　*首版发布*\r\n-------------------------------------\r\n　版本:　　　　　　　　　1.1.0\r\n\r\n　发布时间:　　　　　　　2019-1-30\r\n\r\n　版本说明:　　　　　　　*删除了方法内部的绝大部分无谓的检测判断,\r\n　　　　　　　　　　　　　稍微提高代码效率*\r\n  ```\r\n　<br><br>\r\n**\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-English API\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-\\-**\r\n　<br><br><br>\r\n**Download:**\r\n\r\n```javascript\r\nnpm install async4mysql -S\r\n```\r\n\r\n**IMPORT:**\r\n\r\n```javascript\r\nconst async4mysql = require('async4mysql');      //import async4mysql module\r\n\r\nconst db = new async4mysql(option);      //Create a module instance object\r\n```\r\n* The `new async4mysql` instance will creates a **single connection pool** or **connection pool cluster** based on `the parameter type`\r\n\r\n**USE:**\r\n\r\n**　Single Connection Pool \\-\\>**\r\n\r\n```javascript\r\nWhen the option parameter of new async4mysql(option) is a json, then the new async4mysql(option)\r\n will create a single connection pool (a pool containing only one connection created by the .createpool() method of the mysql module).\r\n\r\nParameter Format:\r\n  {\r\n    host:'localhost',           // Database server name\r\n    user:'root',                // Database server user name\r\n    port:3306,                  // Database server interface\r\n    password:'123456',          // Database server password\r\n    database:'damo'             // The name of the database to connect to\r\n  }\r\n```\r\n\\>\\>\\>\\>\\>　When **db instance ** is a ** single connection pool **, **db instance ** can use the following 6 methods:<br>\r\n> * `.select()`,　`.delete()`,　`.update()`,　`.insert()`,　`.entire()`,　`.query()`\r\n\r\n**1:　.select() method**\r\n\r\n**.select()　　Executes the specified mysql SELECT statement synchronously**\r\n\r\n　parameters :<br>\r\n　　**.select**( *sql*,　*arr* )<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option = {      //The option parameter is a json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);      /* Because option is a json, the async4mysql instance\r\n　　　　　　　　　　　　　　　　　　　　　 will create a single connection pool */\r\n\r\nlet sql_1 = `SELECT * FROM table`;\r\n\r\ndb.select(sql_1).then(data => {      /*Callback function argument to the.then() method of select()\r\n　　　　　　　　　　　　　　　　　　　'data' is the query result of the sql_1 statement, it's an array*/\r\n  console.log(data);      // [{id:'123', value1:'aaa', value2:'bbb'}, {id:'456', value1:'ccc', value2:'ddd'}, ......]　\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\ndb.select(sql_2, ['table', 'myTablesId']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT * FROM table`;\r\n\r\n  let result_1 = await db.select(sql_1).catch(err => {     //Use .select() method in an async function, the query result 'result_1' for the sql_1 statement is returned directly　　\r\n    console.log(err)\r\n  });\r\n    // ***The await operator can synchronously perform the asynchronous async function, so the subsequent series of operations are performed only after the result_1 returns***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\n  let result_2 = await db.select(sql_2, ['table', 'myTablesId']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**2:　.delete() method**\r\n\r\n**.delete()　　Executes the specified mysql DELETE statement synchronously**\r\n\r\n　parameters :<br>\r\n　　**.delete**( *sql*,　*arr* )<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option = {      //The option parameter is a json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);      /* Because option is a json, the async4mysql\r\n　　　　　　　　　　　　　　　　　　　　　　 will create a single connection pool */\r\n\r\nlet sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\ndb.delete(sql_1).then(data => {  // The callback function parameter 'data' of the .then() method is a description of the deletion result of the sql_1 statement, it's a string　\r\n  console.log(data);      //  `--->  *async4mysql*模块: DELETE FROM table WHERE id='123456'   --->  语句已执行!`　\r\n　　　　　　　　　　　　　// ***The return value of the.delete() method is not normally required\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\ndb.delete(sql_2, ['table', '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\n  await db.delete(sql_1).catch(err => {     //Use .delete() method in an async function, the return value of the db instance is not required\r\n    console.log(err)\r\n  });\r\n    // ***The await operator can synchronously perform the asynchronous async function, so the subsequent series of operations are performed only after the result_1 returns***　\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\n  await db.delete(sql_2, ['table', '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**3:　.update()方法**\r\n\r\n**.update()　　Executes the specified mysql UPDATE statement synchronously**\r\n\r\n　parameters :<br>\r\n　　**.update**( *sql*,　*arr* )<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option = {      //The option parameter is a json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);      /* Because option is a json, the async4mysql\r\n　　　　　　　　　　　　　　　　　　　　　　 will create a single connection pool */\r\n\r\nlet sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\ndb.update(sql_1).then(data => {  // The callback function parameter 'data' of the .then() method is a description of the deletion result of the sql_1 statement, it's a string\r\n  console.log(data);      //  `--->  *async4mysql*模块: UPDATE table SET value1='aaa' WHERE id='123456'   --->  语句已执行!`　　\r\n　　　　　　　　　　　　　// ***Normally you don't need the return value of the .update() method\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `UPDATE ?? SET ? WHERE id = ?`;\r\n\r\ndb.update(sql_2, ['table', {value1:'value1', value2:'value2'}, '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\n  let result_1 = await db.update(sql_1).catch(err => {     //Use .update() method in an async function, the return value of the db instance is not required　\r\n    console.log(err)\r\n  });\r\n    // ***The await operator can synchronously perform the asynchronous async function, so the subsequent series of operations are performed only after the result_1 returns***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `UPDATE ?? SET ? WHERE id = ?`;\r\n\r\n  await db.update(sql_2, ['table', {value1:'value1', value2:'value2'}, '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**4:　.insert() method**\r\n\r\n**.insert()　　Executes the specified mysql INSERT statement synchronously**\r\n\r\n　parameters :<br>\r\n　　**.insert**( *sql*,　*arr* )<br><br>\r\n　　If the type of *sql* is *string* :<br>\r\n　　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n　　If the type of *sql* is *json* :<br>\r\n　　　`sql:　Insert key-value pairs for the mysql statement to execute (that is, json)　　necessary`<br>\r\n　　　`arr:　Table name string for the data table to manipulate　　　　　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option = {                        //The option parameter is a json\r\n  host:'localhost',\r\n  user:'root',\r\n  port:3306,\r\n  password:'123456',\r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);     //*Because option is a json, the async4mysql will create a single connection pool\r\n\r\nlet sql_1 = `INSERT INTO table SET id = 'aaa',value1 = 'bbb'`;\r\n\r\ndb.insert(sql_1).then(data => {       //The callback function parameter 'data' of the .then() method is a description of the deletion result of the sql_1 statement, it's a string　\r\n  console.log(data);        //  `--->  *async4mysql*模块: INSERT INTO table SET id='aaa',value1='bbb'   --->  语句已执行!`　\r\n　　　　　　　　　　　　　　// ***The return value from the .insert() method is not normally required\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `INSERT INTO ?? SET ?`;\r\n\r\ndb.insert(sql_2, ['table', {id:'aaa', value1:'bbb'}]).then(data=>{\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n\r\nlet json = {id:'eee', value:'fff'};\r\n\r\ndb.insert(json, 'table').then(data => {    // The equivalent of db.insert(`INSERT INTO ?? SET ?`, ['table', json]).then( ......　\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res)=>{\r\n  let sql_1 = `INSERT INTO table SET id = 'aaa',value1 = 'bbb'`;\r\n\r\n  await db.insert(sql_1).catch(err=>{     //Use .insert() method in an async function, the insert statement is executed directly, and its return value is generally not required　\r\n    console.log(err);\r\n  });\r\n    //*The await operator can execute asynchronous async functions synchronously, so the subsequent series of operations are executed only after the completion of sql_1\r\n\r\n  console.log(db.sql);      /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `INSERT INTO ?? SET ?`;\r\n\r\n  await db.insert(sql_2, ['table', {id:'aaa', value1:'bbb'}]).catch(err=>{\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  let json = {id:'eee', value:'fff'};\r\n\r\n  await db.insert(json, 'table').catch(err => {    //The equivalent of db.insert(`INSERT INTO ?? SET ?`, ['table', json]).catch( ......　\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**5:　.entire() method**\r\n\r\n**.entire()　　* The method can perform multiple mysql operations asynchronously and ensure that all mysql operations are completed before returning relevant data**\r\n\r\n*parameters*:<br>\r\n```javascript\r\n.entire(\r\n  {sql : '...',  values : [] },\r\n  {sql : '...',  values : [] },\r\n    ......\r\n)\r\n```\r\n* The .entire() method must have a json parameter type and can have any parameter greater than 1\r\n```javascript\r\n{\r\n  sql:  Key-value pairs for mysql statements or INSERT statements to execute        (necessary)\r\n  values:  An array of anti - injection operations store [optional] or the table name string for the INSERT operation (necessary)\r\n}\r\n```\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option = {                    // The option parameter is a json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);     // *Because option is a json, the async4mysql will create a single connection pool　\r\n\r\nlet P1 = {\r\n  sql:`SELECT * FROM table WHERE value = 'value1'`,\r\n  // values:[]            // *'values' properties can be omitted when anti-injection operations are not required\r\n};\r\n\r\nlet P2 = {\r\n  sql:`INSERT INTO ?? SET id = ?, value = ?`,\r\n  values:['table', 'id', 'value']\r\n};\r\n\r\nlet P3 = {\r\n  sql:{id:'_id', value:'_value'},      // *** When the sql attribute is of type json, that means the operation must be INSERT\r\n  values:'table'      // *** When the SQL property is of type json, the values property cannot be omitted, and its type must be a string, which represents the table name of the INSERT operation　\r\n};\r\n\r\n/* P3 equivalently:\r\n  let P3 = {\r\n    sql:`INSERT INTO ?? SET ?`,\r\n    values: ['table', {id:'_id', value:'_value'}]\r\n  }; */\r\n\r\ndb.entire(P1, P2, P3).then(data => {       /* The .insert() method's .then() method callback parameter data is an array,\r\n　　　　　　　　　　　　　　　　　　　　　　　　The array will not be returned until P1, P2, and P3 have all been executed,\r\n　　　　　　　　　　　　　　　　　　　　　　　　This array contains the execution results of all mysql statements in the order of the arguments P1, P2, P3 */\r\n　　　　　　// *** In the .entire() method, P1, P2 and P3 are executed asynchronously, that is to say, P1, P2 and P3 are executed simultaneously, there is no need to wait for P1 to complete before executing P2 and P3　\r\n  console.log(data);    // [[{id:'aaa', value:'bbb'}], '...语句用已执行 !', '...语句用已执行 !']\r\n　　　　　　// *** Only SELECT related operations result in arrays, while DELETE, UPDATE, and INSERT operations result in strings\r\n  console.log(db.sql);  /* *** The db.sql attribute in the .entire() method represents an array that contains all mysql statements used in this operation;\r\n　　　　　　　　　　　　　　　*!* If an error occurs during execution, the db.sql attribute will be the error message thrown by the db instance\r\n　　　　　　　　　　　　　　　db.sql attributes are in exactly the same order as the parameters P1, P2, P3;\r\n　　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);  // If an error occurs during execution, the db.sql attribute is the error message thrown by the db instance\r\n   //Error message format: * _______________async4mysql模块 .entire()方法 错误* sql语句执行出错, ---> sql: (Here is the wrong SQL statement)}　\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res)=>{\r\n  let P1 = {\r\n    sql:`SELECT * FROM table WHERE value = 'value1'`,\r\n    // values:[]            // *The 'values' attribute can be omitted when anti-injection operations are not required\r\n  };\r\n\r\n  let P2 = {\r\n    sql:`INSERT INTO ?? SET id = ?, value = ?`,\r\n    values:['table', 'id', 'value']\r\n  };\r\n\r\n  let P3 = {\r\n    sql:{id:'_id', value:'_value'},       // *** When the SQL attribute is of type json, that means the operation is an INSERT operation\r\n    values:'table'                  // *** When the SQL property is of type json, the values property cannot be omitted, and its type must be a string, which represents the table name of the INSERT operation　\r\n  };\r\n\r\n  /* P3 writing the equivalent of:\r\n    let P3 = {\r\n      sql:`INSERT INTO ?? SET ?`,\r\n      values: ['table', {id:'_id', value:'_value'}]\r\n    }; */\r\n\r\n  let result = await db.entire(P1, P2, P3).catch(err => {  /* When P1, P2, and P3 have all been executed, return result, which is an array\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　It contains the execution results of all mysql statements in order of arguments P1, P2, P3 */\r\n    console.log(err);\r\n    console.log(db.sql);  // If an error occurs during execution, the db.sql attribute is the error message thrown by the db instance\r\n      //Error message format: * _______________async4mysql模块 .entire()方法 错误* sql语句执行出错, ---> sql: (Here is the wrong SQL statement)}\r\n      // todo ...\r\n    });\r\n\r\n　　　//*The await operator can synchronously execute the asynchronous async function, so, only when the. Entire () method is completed does it execute the following sequence of operations\r\n\r\n    console.log(db.sql);  /* *** The db.sql attribute in the .entire() method represents an array that contains all mysql statements used in this operation;\r\n　　　　　　　　　　　　　　*!* If an error occurs during execution, the db.sql attribute will be the error message thrown by the db instance\r\n　　　　　　　　　　　　　　db.sql attributes are in exactly the same order as the parameters P1, P2, P3;\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n    // todo ...\r\n\r\n    res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**6:　.query() method**\r\n\r\n**.query()　　Synchronized execution of all types of mysql statements specified (generally used to execute mysql statements except add, delete, change, and check)**\r\n\r\n　parameters :<br>\r\n　　**.query**( *sql*,　*arr* )<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option = {                    //The option parameter is a json\r\n  host:'localhost', \r\n  user:'root', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo'\r\n};\r\n\r\nconst db = new async4mysql(option);     //*Because option is a json, the async4mysql will create a single connection pool\r\n\r\nlet sql_1 = `SELECT COUNT(table_name) AS total FROM information_schema.tables WHERE table_schema = '库名' AND table_name='表名称'`;　\r\n\r\ndb.query(sql_1).then(data => {\r\n  console.log(data);\r\n  console.log(db.sql);\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n\r\nlet sql_2 = `CREATE TABLE damo (\r\n　　　　　　id varchar(11) DEFAULT NULL,\r\n　　　　　　_varchar varchar(100) DEFAULT NULL,\r\n　　　　　　_int int(2) DEFAULT NULL\r\n　　　　　　) ENGINE=InnoDB DEFAULT CHARSET=utf8`;\r\n\r\ndb.query(sql_2).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT COUNT(table_name) AS total FROM information_schema.tables WHERE table_schema = '库名' AND table_name='表名称'`;　\r\n\r\n  let result = await db.query(sql_1).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result);\r\n    //*The await operator can synchronously execute the asynchronous async function, so the subsequent sequence of operations is executed only after the completion of sql_1\r\n\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `CREATE TABLE damo (\r\n　　　　　　　id varchar(11) DEFAULT NULL,\r\n　　　　　　　_varchar varchar(100) DEFAULT NULL,\r\n　　　　　　　_int int(2) DEFAULT NULL\r\n　　　　　　　) ENGINE=InnoDB DEFAULT CHARSET=utf8`;\r\n\r\n  await db.query(sql_2).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(db.sql);\r\n\r\n  res.json({ok:true, msg:'Oh! yeah~'});\r\n});\r\n```\r\n**\\-\\-\\-Connection Pool Cluster\\-\\-\\-**\r\n\r\n```javascript\r\nWhen the option parameter of new async4mysql(option) is an Array,\r\nnew async4mysql(option) then creates a cluster of connection pools (A connection pool that contains one or more connections created by the mysql module’s .createPoolCluster() method).\r\n\r\n*Parameter format* ->\r\n  [\r\n    {\r\n      connectName:'CONNECT_1',    // The connection name\r\n      option:{\r\n        host:'localhost',            // Database name\r\n        user:'root_1',               // Database user name\r\n        port:3306,                   // Database interface\r\n        password:'pwd_1',            // Database password\r\n        database:'damo_1'            // The name of the database to connect to\r\n      }\r\n    },\r\n    {\r\n      connectName:'CONNECT_2',    // The connection name\r\n      option:{\r\n        host:'localhost',            // Database name\r\n        user:'root_1',               // Database user name\r\n        port:3306,                   // Database interface\r\n        password:'pwd_2',            // Database password\r\n        database:'damo_2'            // The name of the database to connect to\r\n      }\r\n    },\r\n    ......\r\n  ]\r\n```\r\n**At this point, new async4mysql(option) instance creates a connection named `json.connectName` based on the `json.option` of each *value(json)* in the *parameter array***　<br><br>\r\n**Connection pool cluster can operate on different mysql databases in the same instance!!!(a single connection pool can only operate on the same mysql database)**　<br><br>\r\n\\>\\>\\>\\>\\>　When a **db object** is a connection pool cluster, the following 6 methods can be used for the **db object**:<br>\r\n> * `.$select()`,　`.$delete()`,　`.$update()`,　`.$insert()`,　`.$entire()`,　`.$query()`\r\n\r\n**1:　.$select() method**\r\n\r\n**.$select()　　Synchronously execute the specified mysql SELECT statement**\r\n\r\n　parameters :<br>\r\n　　**.$select**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　The connection name　　　　　　　　　necessary`<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*Since the option is an Array, async4mysql instance will create a cluster of connection pools\r\n  // Depending on the opt parameter, the connection pool cluster will contain two connections, named 'CONNECT_1' and 'CONNECT_2', that can be connected to different databases for operations　\r\n\r\n\r\nlet sql_1 = `SELECT * FROM table`;\r\n\r\ndb.$select('CONNECT_1', sql_1).then(data => {      /*Callback function argument to the.then() method of select()\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　'data' is the query result of the sql_1 statement, it's an array*/\r\n  console.log(data);      // [{id:'123', value1:'aaa', value2:'bbb'}, {id:'456', value1:'ccc', value2:'ddd'}, ......]\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\ndb.$select('CONNECT_2', sql_2, ['table', 'myTablesId']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `SELECT * FROM table`;\r\n\r\n  let result_1 = await db.$select('CONNECT_1', sql_1).catch(err => {     //Use .$select() method in an async function, the query result 'result_1' for the sql_1 statement is returned directly　\r\n    console.log(err)\r\n  });\r\n    // ***The await operator can synchronously perform the asynchronous async function, so the subsequent series of operations are performed only after the result_1 returns***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `SELECT * FROM ?? WHERE id = ?`;\r\n\r\n  let result_2 = await db.$select('CONNECT_2', sql_2, ['table', 'myTablesId']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**2:　.$delete() method**\r\n\r\n**.$delete()　　Synchronously execute the specified mysql DELETE statement**\r\n\r\n　parameters :<br>\r\n　　**.$delete**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　The connection name　　　　　　　　　necessary`<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*Since the option is an Array, async4mysql instance will create a cluster of connection pools\r\n  // Depending on the opt parameter, the connection pool cluster will contain two connections, named 'CONNECT_1' and 'CONNECT_2', that can be connected to different databases for operations\r\n\r\n\r\nlet sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\ndb.$delete(CONNECT_1, sql_1).then(data => {  // Data, the callback function argument to the .then() method of the .$delete() method, is a description of the deletion result of the sql_1 statement, it's a string　\r\n  console.log(data);      //  `--->  *async4mysql*模块: DELETE FROM table WHERE id='123456'   --->  语句已执行!`\r\n　　　　　　　　　　　　　// ***The return value of the .$delete() method is not normally required\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  console.log(db.sql);\r\n});\r\n\r\nlet sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\ndb.$delete(CONNECT_2, sql_2, ['table', '123456']).then(data => {\r\n  // todo...\r\n}).catch(err => {\r\n  // todo...\r\n});\r\n```\r\n```javascript\r\n******Use in an async function: ******\r\n\r\nconst express = require('express');\r\nconst app = express();\r\napp.listen(8080);\r\n\r\napp.post('/damo', async (req, res) => {\r\n  let sql_1 = `DELETE * FROM table WHERE id = '123456'`;\r\n\r\n  await db.$delete(CONNECT_1, sql_1).catch(err => {     //Use .$delete() method in an async function, the return value of the db instance is not required　\r\n    console.log(err)\r\n  });\r\n    // ***The await operator can synchronously perform the asynchronous async function, so the subsequent series of operations are performed only after the result_1 returns***\r\n  console.log(result_1);\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n\r\n  let sql_2 = `DELETE * FROM ?? WHERE id = ?`;\r\n\r\n  await db.$delete(CONNECT_2, sql_2, ['table', '123456']).catch(err => {\r\n    // todo...\r\n  });\r\n\r\n  console.log(result_2);\r\n  console.log(db.sql);\r\n\r\n  res.json([result_1, result_2]);\r\n});\r\n```\r\n**3:　.$update() method**\r\n\r\n**.$update()　　Synchronously execute the specified mysql UPDATE statement**\r\n\r\n　parameters :<br>\r\n　　**.$update**( *connectName*,　*sql*,　*arr* )<br>\r\n　　`connectName:　The connection name　　　　　　　　　necessary`<br>\r\n　　`sql:　mysql statement to execute　　　　　　　　necessary`<br>\r\n　　`arr:　The array of injection prevention operation　　　　optional`<br>\r\n\r\n**Basal Example :**\r\n```javascript\r\n******Use in a non-async function: ******\r\n\r\nconst option1 = {\r\n  host:'localhost', \r\n  user:'root_1', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_1'\r\n};\r\n\r\nconst option2 = {\r\n  host:'localhost', \r\n  user:'root_2', \r\n  port:3306, \r\n  password:'123456', \r\n  database:'damo_2'\r\n};\r\n\r\nlet opt = [{connectName : 'CONNECT_1', option : option1}, {connectName : 'CONNECT_2', option : option2}];\r\n\r\nconst db = new async4mysql(opt);     //*Since the option is an Array, async4mysql instance will create a cluster of connection pools\r\n  // Depending on the opt parameter, the connection pool cluster will contain two connections, named 'CONNECT_1' and 'CONNECT_2', that can be connected to different databases for operations\r\n\r\n\r\nlet sql_1 = `UPDATE table SET value1='value1',value2='value2' WHERE id = '123456'`;\r\n\r\ndb.$update('CONNECT_1', sql_1).then(data => {  // The callback function argument to the .then() method of the .$update() method data is a description of the update result of the sql_1 statement, it's a string　\r\n  console.log(data);      //  `--->  *async4mysql*模块: UPDATE table SET value1='aaa' WHERE id='123456'   --->  语句已执行!`　\r\n　　　　　　　　　　　　　// ***Normally you don't need the return value of the .$update() method\r\n  console.log(db.sql);  /* *** The .sql attribute of the new async4mysql() instance (that is, the db instance) \r\n　　　　　　　　　　　　　　　represents the mysql statement for this operation\r\n　　　　　　　　　　　　　　db.sql attributes change each time a method of a db instance is executed */\r\n}).catch(err => {\r\n  console.log(err);\r\n  con","readmeFilename":"README.md","homepage":"https://github.com/ModernFarmer/async4mysql#readme","repository":{"type":"git","url":"git+https://github.com/ModernFarmer/async4mysql.git"},"bugs":{"url":"https://github.com/ModernFarmer/async4mysql/issues","email":"850558682@qq.com"}}