Всем привет.
Прошу совета. Подскажите в каком направлении двигаться
Делаю тестовое задание чтобы устроиться на работу и не могу установить связь между моими скриптами и базой MySQL.
Тестовое задание называется "Комментарии". В задании сказано, что данные, которые пользователь будет вводить в поля (в инпуты), должны вноситься в БД MySQL.
Установил MySQL. Из командной строки MySQL работает. Но связь между приложением и БД установить не получается.
Установил в проэкт модуль для работы с MySQL. В поисках решения проблемы пробовал устанавливать модуль тремя разными командами: npm install mysql, npm install mysql --save и npm install mysql --save-dev. Когда в файле gulpfile.js, который находится в корне приложения, создаю подключение вот таким образом:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '0707',
database : 'mysql'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
то соединение вроде бы устанавливается, о чем свидетельствует строка "connected as id 19" в командной строке Вебшторма. В этом же файле(gulpfile.js), создаю запрос и в ту же командную строку Вебшторма данные из базы выводятся. Но создать соединение с базой в приложении не получается. Между базой и браузером соединения нет. Когда в файле main.js, который находится в директории src/js, создаю подключение вот такой строчкой:
var mysql = require('mysql');
то в консоли браузера выводится ошибка: require is not defined.
Я конечно понимаю, что "require" - это метод Node и ее определения нет в той области видимости (в файле main.js). Но как все таки создать соединение между базой и моими скриптами - не могу понять.
Создавать соединение нужно через ajax (или get, post запросы)?
Или соединение с базой нужно устанавливать в файле gulpfile.js, а обмен данными осуществлять через ajax (get, post запросы)?
Или как?
Для наглядности пришлю файл с заданием и скриншот структуры моего проэкта
P.S. По этой ссылке:
Как вытащить данные из запроса к БД функцией connection.query в node.js (кроме conslole.log)?
пользователь Evansive советует создавать запросы к базе вот так:
app.get('/page', function(req, res) {
connection.query("SELECT * FROM `table`", function(err, result) {
res.render('index.html', { object: result });
});
});
Но объект "connection" будет не опреден, если этот запрос будет находится в файле main.js
Я пробовал в корне проэкта создать файл mysql.js, в котором создается подключение с mysql вот так:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '0707',
database : 'mysql'
});
а после подключения вставил такую строку:
//= src/js/main.js
С помощью этой строки сюда импортируется файл main.js (плагином gulp-rigger).
В файле gulpfile.js написал вот так:
var path = {
build: {
html: 'build/',
js: 'build/js/',
css: 'build/css/',
img: 'build/img/',
fonts: 'build/fonts/'
},
src: {
html: 'src/*.html',
js: 'mysql.js', // вместо 'src/js/main.js' !!!!!
style: 'src/style/main.scss',
img: 'src/img/**/*.*',
fonts: 'src/fonts/**/*.*'
},
watch: {
html: 'src/**/*.html',
js: 'src/js/**/*.js',
style: 'src/style/**/*.*',
img: 'src/img/**/*.*',
fonts: 'src/fonts/**/*.*'
},
clean: './build'
};
вместо 'src/js/main.js' указал файл 'mysql.js'
и в файле main.js написал вот так:
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
После этого, при запуске проэкта, браузер не пишет, что например: connection is not defined. Но и не выводит в консоль браузера строку "connected as id ...". Т.е. связь между приложением(браузером) и базой похоже не устанавливаеться.
Куда копать? В каком направлении двигаться?