mysql.js 897 B

1234567891011121314151617181920212223242526272829303132333435
  1. const { createPool } = require("mariadb");
  2. const clientOpts = {
  3. host: process.env.MYSQL_HOST,
  4. user: process.env.MYSQL_USER,
  5. password: process.env.MYSQL_PSWD,
  6. database: process.env.MYSQL_DBNAME,
  7. };
  8. const pool = createPool({ ...clientOpts, connectionLimit: 1 });
  9. const execute = (text, values) => pool.execute(text, values || undefined);
  10. async function allFortunes() {
  11. return execute("select id, message from fortune", []);
  12. }
  13. async function getWorld(id) {
  14. return execute("select id, randomNumber from world where id = ?", [id]).then(
  15. (arr) => arr[0]
  16. );
  17. }
  18. async function bulkUpdate(worlds) {
  19. const sql = "update world set randomNumber = ? where id = ?";
  20. const values = worlds
  21. .map((world) => [world.randomnumber, world.id])
  22. .sort((a, b) => (a[0] < b[0] ? -1 : 1));
  23. return pool.batch(sql, values);
  24. }
  25. module.exports = {
  26. getWorld,
  27. bulkUpdate,
  28. allFortunes,
  29. };