Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Menu = require('terminal-menu');
- var sqlQuery;
- var XMLHttpRequest = require('w3c-xmlhttprequest').XMLHttpRequest;
- var menu = Menu({ width: 29, x: 4, y: 2 });
- menu.reset();
- menu.write('SELECT A DATABASEn');
- menu.write('-------------------------n');
- menu.add('MYSQL');
- menu.add('POSTGRES');
- menu.add('EXIT');
- menu.on('select', function (label) {
- menu.close();
- var xhttp = new XMLHttpRequest();
- xhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- myFunction(this);
- }
- };
- xhttp.open("GET", "db.xml", true);
- xhttp.send();
- function myFunction(xml) {
- var xmlDoc = xml.responseXML;
- var databases = xmlDoc.getElementsByTagName("database");
- var h=0;
- var num=0;
- for(var i=0; I<databases.length; i++){
- sqlQuery="CREATE DATABASE "+ xmlDoc.getElementsByTagName("database")[0].getAttribute("name")+"; USE "+ xmlDoc.getElementsByTagName("database")[0].getAttribute("name")+" ;";
- var tables = xmlDoc.getElementsByTagName("table");
- for(var j=0; j<tables.length; j++){
- sqlQuery+=" CREATE TABLE "+ xmlDoc.getElementsByTagName("table")[j].getAttribute("name")+"( ";
- var att= xmlDoc.getElementsByTagName("att");
- num=num + xmlDoc.getElementsByTagName("table")[j].childElementCount;
- for(; h<num;h++){
- sqlQuery+= xmlDoc.getElementsByTagName("attr")[h].getAttribute("name")+" "+ xmlDoc.getElementsByTagName("attr")[h].getAttribute("type")+ " ";
- if(h+1==num){sqlQuery+=" "}else{sqlQuery+=" , "}
- }
- sqlQuery+=" ); "
- }
- }
- }
- if(label=="MYSQL")
- {
- var mysql = require('mysql');
- var con = mysql.createConnection({
- host: "localhost",
- user: "root",
- password: "1234"
- });
- con.connect(function(err) {
- if (err) throw err;
- con.query("CREATE DATABASE ROQUE;" , function (err, result, fields) {
- if (err) throw err;
- console.log(result);
- });
- });
- }
- else
- {
- const pg = require('pg');
- const connectionString = process.env.DATABASE_URL || 'postgres://localhost:5432/';
- const client = new pg.Client(connectionString);
- client.connect();
- const query = client.query(sqlQuery);
- query.on('end', () => { client.end(); });
- }
- console.log('SELECTED: ' + label);
- });
- process.stdin.pipe(menu.createStream()).pipe(process.stdout);
- process.stdin.setRawMode(true);
- menu.on('close', function () {
- process.stdin.setRawMode(false);
- process.stdin.end();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement