Advertisement
Guest User

Untitled

a guest
Sep 8th, 2017
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. var Menu = require('terminal-menu');
  2. var sqlQuery;
  3. var XMLHttpRequest = require('w3c-xmlhttprequest').XMLHttpRequest;
  4. var menu = Menu({ width: 29, x: 4, y: 2 });
  5. menu.reset();
  6. menu.write('SELECT A DATABASEn');
  7. menu.write('-------------------------n');
  8.  
  9. menu.add('MYSQL');
  10. menu.add('POSTGRES');
  11. menu.add('EXIT');
  12.  
  13. menu.on('select', function (label) {
  14. menu.close();
  15.  
  16. var xhttp = new XMLHttpRequest();
  17. xhttp.onreadystatechange = function() {
  18. if (this.readyState == 4 && this.status == 200) {
  19. myFunction(this);
  20. }
  21. };
  22. xhttp.open("GET", "db.xml", true);
  23. xhttp.send();
  24.  
  25. function myFunction(xml) {
  26. var xmlDoc = xml.responseXML;
  27. var databases = xmlDoc.getElementsByTagName("database");
  28. var h=0;
  29. var num=0;
  30. for(var i=0; I<databases.length; i++){
  31. sqlQuery="CREATE DATABASE "+ xmlDoc.getElementsByTagName("database")[0].getAttribute("name")+"; USE "+ xmlDoc.getElementsByTagName("database")[0].getAttribute("name")+" ;";
  32.  
  33. var tables = xmlDoc.getElementsByTagName("table");
  34. for(var j=0; j<tables.length; j++){
  35. sqlQuery+=" CREATE TABLE "+ xmlDoc.getElementsByTagName("table")[j].getAttribute("name")+"( ";
  36. var att= xmlDoc.getElementsByTagName("att");
  37. num=num + xmlDoc.getElementsByTagName("table")[j].childElementCount;
  38. for(; h<num;h++){
  39. sqlQuery+= xmlDoc.getElementsByTagName("attr")[h].getAttribute("name")+" "+ xmlDoc.getElementsByTagName("attr")[h].getAttribute("type")+ " ";
  40. if(h+1==num){sqlQuery+=" "}else{sqlQuery+=" , "}
  41. }
  42. sqlQuery+=" ); "
  43. }
  44. }
  45. }
  46.  
  47.  
  48. if(label=="MYSQL")
  49. {
  50. var mysql = require('mysql');
  51.  
  52. var con = mysql.createConnection({
  53. host: "localhost",
  54. user: "root",
  55. password: "1234"
  56. });
  57.  
  58. con.connect(function(err) {
  59. if (err) throw err;
  60. con.query("CREATE DATABASE ROQUE;" , function (err, result, fields) {
  61. if (err) throw err;
  62. console.log(result);
  63. });
  64. });
  65. }
  66. else
  67. {
  68. const pg = require('pg');
  69. const connectionString = process.env.DATABASE_URL || 'postgres://localhost:5432/';
  70.  
  71. const client = new pg.Client(connectionString);
  72. client.connect();
  73. const query = client.query(sqlQuery);
  74. query.on('end', () => { client.end(); });
  75.  
  76. }
  77.  
  78. console.log('SELECTED: ' + label);
  79. });
  80. process.stdin.pipe(menu.createStream()).pipe(process.stdout);
  81.  
  82. process.stdin.setRawMode(true);
  83. menu.on('close', function () {
  84. process.stdin.setRawMode(false);
  85. process.stdin.end();
  86. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement