Node - a module is executed twice

0

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);
    
asked by user2957041 08.12.2018 в 23:33
source

1 answer

0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

and

var $ = jQuery = require('jquery')(window);

does the same, the first script is already declaring $ as jquery

    
answered by 10.12.2018 в 13:00