I do not understand why the module query.js is executed twice so I read it might be for an arrow function, but I can not find the problem.
const mysql = require('mysql');
//----------------------------------------------- require mysql
var jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;
var $ = jQuery = require('jquery')(window);
//----------------------------------------------- require jquery
const app = {};
//----------------------------------------------- Export query.js
// create connection
const con = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '42167895',
database : 'nodemysql'
});
console.log('a');
function addButton(){
// # selector de ID
// . selector de class
// Create button1
const button = '<button id="button1" type="button">Click Me!</button>';
$('#contain').html(button);
console.log('test');
// assigning functionality to button1
/* $(document).ready(()=>{
$('#button1').click(()=>{
getTable();
console.log('Button1');
});
}); */
}
console.log('j');
function getTable(){
// connect
con.connect((err) =>{
if(err) throw err;
console.log('MySql Connected...');
con.query("SELECT * FROM nodejs", (err, result, fields)=>{
if(err) throw err;
console.log(result);
});
});
}
app.addButton = addButton;
app.getTable = getTable;
module.exports = app;
const http = require('http');
const query = require('./query');
const content =
'<!DOCTYPE html>'+
'<html>'+
' <head>'+
' <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>'+
' <meta charset="utf-8">'+
' <title>test</title>'+
' </head>'+
' <body>'+
' <div id="contain"></div>'+
// ' <script src="query.js"></script>'+
// esto es muy interesante,
// ya que estariamos utilizando mal nodejs,
// si nosotros queremos usar query.js lo que va a sucedes es un error del tipo :
// SyntaxError: expected expression, got '<'[Conocer más]
// buscando en los foros este error aparece por que :
//
// Cuando el navegador solicita archivos JavaScript como query.js o angular.min.js,
// su servidor devuelve el contenido de index.html,
// que comienza con <! DOCTYPE html>, lo que provoca el error de JavaScript.
//
// la solucion es sencilla y es que como en la carpeta '2do intento', nosotros lo que queriamos hacer era que
// inregrar nodejs a html, cuando en realidad con node lo que debemos hacer es integrar el html a node
// ya que node va a ser el encargado de administrar todo ya que es el servidor
// por lo que ahora nosotros debemos solicitar query.js desde nodejs con un require como bien hicimos arriba
// con la instruccion const http = require('http');
// asi que vamos a llamar al modulo query con otro require
' </body>'+
'</html>';
const server = http.createServer((req, res)=>{
res.writeHead(200,{"Content-Type":"text/html"});
res.write(content);
// query.addButton();
/* query.getTable();*/
res.end();
});
server.listen(8080);